using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System; using SC.XR.Unity; using Blue; using LitJson; using Immersal.AR; using XRTool.Util; public class SettingPanel : AbstractController { public Text spMRtext; public Toggle MinMap; public Toggle NoMinMap; public Toggle DingWei; public Toggle feiDingWei; public Toggle LuJIng; public Toggle NoLuJIng; public Transform ChooseLine; public Toggle LineItem; public Transform LineItemParent; public Button SaveData; [SerializeField, Tooltip("小地图信息")] private MinMap m_MinMap; [SerializeField, Tooltip("路径控制器")] private RouteCtr m_RouteCtr; private List Lines; SpoitValue nowsp; public static Dictionary dingweilist = new Dictionary(); private void Awake() { Lines = new List(); SaveData.onClick.AddListener(OnClickSaveData); MinMap.onValueChanged.AddListener(OnMinMapValueChange); LuJIng.onValueChanged.AddListener(OnLuJIngValueChange); DingWei.onValueChanged.AddListener(DingWeiValueChange); setMsg(null); } private void DingWeiValueChange(bool arg0) { if(nowsp!=null) { if (dingweilist.ContainsKey(nowsp.id)) { dingweilist[nowsp.id] = arg0; } else { dingweilist.Add(nowsp.id,arg0); } JsonData data = new JsonData(); data["id"] = nowsp.id; data["projectId"] = SceneChoose.Sid; data["location"] = arg0; HttpTool.Instance.Post("/viewpoint/locationPoint", data.ToJson(), (string str) => { }); setdingwei(arg0); } } private void OnEnable() { MinMap.interactable = false; NoMinMap.interactable = false; HttpTool.Instance.Get("/user/getUserInfo", (string str) => { MinMap.interactable = true; NoMinMap.interactable = true; JsonData data = JsonMapper.ToObject(str); if (data["data"]["minMap"].ToString() == "0") { NoMinMap.isOn = true; m_MinMap.gameObject.SetActive(false); } else { MinMap.isOn = true; m_MinMap.gameObject.SetActive(true); } }); // HttpTool.Instance.Post("/viewpoint/locationPoint", data.ToJson(), (string str) => { }); // MinMap.isOn = this.GetService().setMinMap == 1 ? true : false; } public void setMsg(SpoitValue sv) { nowsp = sv; if (sv!=null) { feiDingWei.gameObject.SetActive(true); DingWei.gameObject.SetActive(true); spMRtext.text = sv.name; if (dingweilist.ContainsKey(nowsp.id)) { if(dingweilist[nowsp.id]) { setdingwei(true); DingWei.isOn = true; } else { if (ARSpace.isFind) { setdingwei(false); } feiDingWei.isOn = true; } } else { if(sv.location) { dingweilist.Add(nowsp.id,true); setdingwei(true); DingWei.isOn = true; } else { if (ARSpace.isFind) { setdingwei(false); } feiDingWei.isOn = true; } } } else { spMRtext.text = "----"; feiDingWei.isOn = false; feiDingWei.gameObject.SetActive(false); DingWei.gameObject.SetActive(false); //if(ARSpace.isFind) //{ setdingwei(true); //} } } public void setdingwei(bool isopen) { if(isopen&&!MoveChange.islixian) XRLocalizer.Instance.gameObject.SetActive(true); else { XRLocalizer.Instance.gameObject.SetActive(false); } } public void Init() { CreateLines(); // MinMap.isOn = true; // m_MinMap.gameObject.SetActive(true); gameObject.SetActive(false); } private void OnMinMapValueChange(bool ison) { Debug.Log("OnMinMapValueChange===>"+ison); JsonData data = new JsonData(); data["minMap"] = ison?1:0; HttpTool.Instance.Post("/user/settings", data.ToJson(), (string str)=> { }); TimerMgr.Instance.CreateTimer(()=> { m_MinMap.gameObject.SetActive(ison); },0.3f,3); } private void OnLuJIngValueChange(bool ison) { m_RouteCtr.gameObject.SetActive(ison); for (int i = 0; i < m_MinMap.list_route.Count; i++) { m_MinMap.list_route[i].gameObject.SetActive(ison); } } private void CreateLines() { var lines = m_RouteCtr.List_route; for (int i = 0; i < lines.Count; i++) { Toggle obj = Instantiate(LineItem, LineItemParent); obj.isOn = false; obj.transform.Find("Label").GetComponent().text = lines[i].name; var item = obj.gameObject.AddComponent(); item.OnToggleSelect += OnCLickToggle; obj.gameObject.SetActive(true); Lines.Add(obj); } } private void OnCLickToggle(int index, bool ison) { m_RouteCtr.SettingLuJing(index, ison); m_MinMap.SetRoute(index, ison); } private void OnClickSaveData() { this.SendCommand(new MinMapGetSetCommand(m_MinMap.gameObject.activeSelf ? 1 : 0)); // DataManager.Instance.SaveSpoits(); GameManager.Instance.StartCoroutine(UIEditorPanel.Instance.SetSpoitInfo()); DataManager.Instance.IsSavedData = true; } }