SavePanel.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using SC.XR.Unity;
  2. using UnityEngine;
  3. using UnityEngine.UI;
  4. public class SavePanel : AbstractController
  5. {
  6. public Button saveBtn;
  7. public Button cancleBtn;
  8. public Transform meshTest;
  9. public Transform parent;
  10. public SCToggleSwitch3D sCToggleSwitch3D;
  11. [SerializeField] private GameObject ARMap;
  12. private void Start()
  13. {
  14. meshTest = GameObject.Find("ARSpaceForAll/mesh_test").gameObject.transform;
  15. parent = GameObject.Find("ARSpaceForAll").transform;
  16. ARMap = GameObject.Find("ARSpaceForAll/AR_Map");
  17. ARMap.SetActive(false);
  18. sCToggleSwitch3D = transform.parent.GetComponent<SCToggleSwitch3D>();
  19. saveBtn.onClick.AddListener(Save);
  20. cancleBtn.onClick.AddListener(Cancle);
  21. }
  22. private void Save()
  23. {
  24. meshTest.transform.parent = parent;
  25. PlayerPrefs.SetFloat("meshTest_PosX", meshTest.localPosition.x);
  26. PlayerPrefs.SetFloat("meshTest_PosZ", meshTest.localPosition.z);
  27. PlayerPrefs.SetFloat("meshTest_RotY", meshTest.localEulerAngles.y);
  28. sCToggleSwitch3D.isOn = false;
  29. gameObject.SetActive(false);
  30. }
  31. private void Cancle()
  32. {
  33. meshTest.transform.parent = parent;
  34. float posX = PlayerPrefs.GetFloat("meshTest_PosX");
  35. float posZ = PlayerPrefs.GetFloat("meshTest_PosZ");
  36. Vector3 pos = new Vector3(posX, 0, posZ);
  37. meshTest.localPosition = pos;
  38. float rotY = PlayerPrefs.GetFloat("meshTest_RotY");
  39. meshTest.localEulerAngles = new Vector3(0, rotY, 0);
  40. sCToggleSwitch3D.isOn = false;
  41. gameObject.SetActive(false);
  42. }
  43. private void OnEnable()
  44. {
  45. if(ARMap!=null)
  46. ARMap.SetActive(false);
  47. SetSceneActive.active = true;
  48. }
  49. private void OnDisable()
  50. {
  51. if(ARMap!=null)
  52. ARMap.SetActive(true);
  53. SetSceneActive.active = false;
  54. }
  55. }