UIFollow.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class UIFollow : MonoBehaviour
  5. {
  6. public float dis;
  7. public float angle;
  8. public Vector3 pos;
  9. void Start()
  10. {
  11. pos = new Vector3(OpenXRCamera.Instance.transform.position.x, 0, OpenXRCamera.Instance.transform.position.z + (OpenXRCamera.Instance.transform.forward * 1.5f).z);
  12. Show(pos);
  13. }
  14. // Update is called once per frame
  15. void Update()
  16. {
  17. dis = Vector3.Distance(new Vector3(OpenXRCamera.Instance.transform.position.x, 0, OpenXRCamera.Instance.transform.position.z), new Vector3(transform.position.x, 0, transform.position.z));
  18. angle = Vector3.Angle(OpenXRCamera.Instance.head.GetComponent<Camera>().transform .forward, transform.position - OpenXRCamera.Instance.head.transform.position);
  19. if(dis>2.5f&&angle>100)
  20. {
  21. Hide();
  22. //
  23. }
  24. }
  25. // 隐藏
  26. private void Hide()
  27. {
  28. gameObject.SetActive(false);
  29. HeadBtnManager.Instance.ShowResetBtn(ScenesManager.SceneType.ShowDH, this);
  30. }
  31. // 显示
  32. public void Show( Vector3 pos )
  33. {
  34. transform.position = pos;
  35. transform.eulerAngles = new Vector3(0,OpenXRCamera.Instance.transform.eulerAngles.y, 0);
  36. gameObject.SetActive(true);
  37. }
  38. }