UIFollow.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class UIFollow : MonoBehaviour
  5. {
  6. public ScenesManager.SceneType type;
  7. public float dis;
  8. public float angle;
  9. public Vector3 pos;
  10. private bool state = true;
  11. void Start()
  12. {
  13. // pos = new Vector3(OpenXRCamera.Instance.transform.position.x, 1.5f,OpenXRCamera.Instance.head.transform.position.z + (OpenXRCamera.Instance.transform.forward * 1.5f).z);
  14. pos = HeadBtnManager.Instance.transform.position;
  15. Show(pos);
  16. }
  17. private void Awake()
  18. {
  19. HeadBtnManager.Instance.uiFollow = this;
  20. }
  21. // Update is called once per frame
  22. void Update()
  23. {
  24. if(state)
  25. {
  26. dis = Vector3.Distance(new Vector3(OpenXRCamera.Instance.head.transform.position.x, 0, OpenXRCamera.Instance.head.transform.position.z), new Vector3(transform.position.x, 0, transform.position.z));
  27. angle = Vector3.Angle(OpenXRCamera.Instance.head.GetComponent<Camera>().transform.forward, transform.position - OpenXRCamera.Instance.head.transform.position);
  28. // Debug.Log("UIFollow DIS " + dis + " OpenXRCamera "+OpenXRCamera.Instance.transform.position+" This "+transform.position);
  29. if (dis > 3 || (dis > 2.5f && angle > 100))
  30. {
  31. Hide();
  32. //
  33. }
  34. }
  35. }
  36. // 隐藏
  37. public void Hide()
  38. {
  39. state = false;
  40. // gameObject.SetActive(false);
  41. transform.position = new Vector3(0,0,10000);
  42. HeadBtnManager.Instance.ShowResetBtn(type, this);
  43. }
  44. // 显示
  45. public void Show( Vector3 pos )
  46. {
  47. transform.position = pos;
  48. transform.eulerAngles = new Vector3(0,OpenXRCamera.Instance.head.transform.eulerAngles.y, 0);
  49. // gameObject.SetActive(true);
  50. if (type == ScenesManager.SceneType.ShowRTC)
  51. ShowRoom.Instance.ResetPosition();
  52. state = true;
  53. }
  54. }