using System.Collections; using System.Collections.Generic; using UnityEngine; using QFramework; using LitJson; using Newtonsoft.Json.Linq; using UnityEngine.UI; public class SelectScene : MonoSingleton { public Text text; public Text error; public List listScenesPage; public Transform panel; public RectTransform content; public GameObject SelectBtn; public int selectSceneId; private int snInfoNum = 0; public void Show(List listScenesPage) { this.listScenesPage = listScenesPage; for (int i = 0; i < listScenesPage.Count; i++) { SendInit send = new SendInit(); send.sn = DeviceSN.Instance.SendSerialBy16(); send.projectId = listScenesPage[i].id; string jsonString = JsonMapper.ToJson(send); HttpTool.Instance.PostTest("/client/snInfo", jsonString, SnInfoCallBack); } } public void Select(int id) { selectSceneId = id; error.text = ""; } public void Confirm() { // 选择场景 SendInit send = new SendInit(); send.sn = DeviceSN.Instance.SendSerialBy16(); error.text = ""; text.text = send.sn; send.projectId = selectSceneId; string jsonString = JsonMapper.ToJson(send); HttpTool.Instance.PostTest("/sn/init", jsonString, InitSceneValueCallBack); } public void VerticalMove(bool state) { if (state) { content.anchoredPosition += new Vector2(253, 0); } else { content.anchoredPosition -= new Vector2(253, 0); } } private void InitSceneValueCallBack(string message) { GameManager.Instance.text2.text = " 获取场景信息"; JObject jObject = JObject.Parse(message); message = jObject["data"].ToString(); Debug.Log(message); GameManager.Instance.text2.text = message; SceneValue scene = JsonMapper.ToObject(message); if (scene.listSpoit.IsNull() || scene.listSpoit.Count == 0) { // 当前场景未创建景点 error.text = "该场景未创建景点"; return; } if (scene.vuforiaDat == scene.vuforiaXML || scene.vuforiaXML.IsNullOrEmpty() || scene.vuforiaDat.IsNullOrEmpty()) { // 当前场景没有识别文件 error.text = "该场景没有识别文件"; return; } try { GameManager.Instance.scene = GameManager.Instance.ProcesSceneValueJsonData(scene); text.text = message; GameManager.Instance.text2.text = " 场景信息获取结束"; GameManager.Instance.text2.text = message; Debug.Log(scene.listSpoit.Count); HttpSocket.Instance.projectid = selectSceneId; HttpSocket.Instance.isOpen = true; panel.gameObject.SetActive(false); } catch (System.Exception e) { ErrorLogPanel.Instance.Show(" 处理场景数据出现错误 " + e.Message); } } private void SnInfoCallBack(string message) { Debug.Log(" @@@ "+ message); JObject jObject = JObject.Parse(message); message = jObject["code"].ToString(); if (message == "200") snInfoNum++; if (snInfoNum == listScenesPage.Count) { LoginPanel.Instance.gameObject.SetActive(false); listScenesPage.ForEach(item => { GameObject btn = GameObject.Instantiate(SelectBtn, content); btn.GetComponent().Init(item); btn.SetActive(true); }); selectSceneId = listScenesPage[listScenesPage.Count - 1].id; content.sizeDelta = new Vector2((listScenesPage.Count) * 300, 0); panel.gameObject.SetActive(true); } } }