123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- using Immersal.AR;
- using UnityEngine;
- using Blue;
- using UnityEngine.UI;
- using Newtonsoft.Json;
- public class ImmersalLocalControl : AbstractController
- {
- private Color32 blue= new Color32(0, 120, 255, 255);
- private Color32 white= new Color32(255, 255, 255, 255);
- private XRLocalizer XRLocalizer =>SceneIOCContainer.Instance.Pull("XRLocalizer")as XRLocalizer;
- private Toggle Y_Location_Toggle =>SceneIOCContainer.Instance.Pull("Y_Location_Toggle")as Toggle;
- private Toggle N_Location_Toggle =>SceneIOCContainer.Instance.Pull("N_Location_Toggle")as Toggle;
- public int id;
- public int projectId;
- public bool isOn;
- private bool firstOpen = true;
- private BlueUserConfig BlueUserConfig;
- private void Awake()
- {
- TextAsset jsonTextAsset = Resources.Load("BlueUserConfig") as TextAsset;
- BlueUserConfig = JsonConvert.DeserializeObject<BlueUserConfig>(jsonTextAsset.text);
- if (!BlueUserConfig.Auto)
- {
- this.RegisterEvent<SetImmersalLocalEvent>(Unload);
- }
- }
- private void OnEnable()
- {
- if(BlueUserConfig.Auto) return;
- if(firstOpen)
- {
- firstOpen = false;
- return;
- }
- Debug.LogError($"{name}是否定位:"+isOn);
- if(isOn)
- {
-
- Y_Location_Toggle.isOn = true;
- XRLocalizer.enabled = true;
- Y_Location_Toggle.transform.Find("Background").GetComponent<Image>().color = blue;
- Y_Location_Toggle.transform.Find("Background/Checkmark").GetComponent<Image>().color = blue;
- N_Location_Toggle.transform.Find("Background").GetComponent<Image>().color = white;
- N_Location_Toggle.transform.Find("Background/Checkmark").GetComponent<Image>().color = white;
- }
- else
- {
- N_Location_Toggle.isOn = true;
- XRLocalizer.enabled = false;
- Y_Location_Toggle.transform.Find("Background").GetComponent<Image>().color = white;
- Y_Location_Toggle.transform.Find("Background/Checkmark").GetComponent<Image>().color = white;
- N_Location_Toggle.transform.Find("Background").GetComponent<Image>().color = blue;
- N_Location_Toggle.transform.Find("Background/Checkmark").GetComponent<Image>().color = blue;
- }
- this.RegisterEvent<SetImmersalLocalEvent>(Unload);
- }
- private void OnDisable()
- {
- if(BlueUserConfig.Auto) return;
- this.UnRegisterEvent<SetImmersalLocalEvent>(Unload);
- }
- private void Unload(SetImmersalLocalEvent e)
- {
- isOn = e.isLocation;
- this.SendCommand(new ImmersalSetLocalCommand(id,projectId,isOn));
- }
- }
|