UIFollow.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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, 1.5f, OpenXRCamera.Instance.transform.position.z + (OpenXRCamera.Instance.transform.forward * 1.5f).z);
  12. pos = HeadBtnManager.Instance.transform.position;
  13. Show(pos);
  14. }
  15. // Update is called once per frame
  16. void Update()
  17. {
  18. 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));
  19. angle = Vector3.Angle(OpenXRCamera.Instance.head.GetComponent<Camera>().transform .forward, transform.position - OpenXRCamera.Instance.head.transform.position);
  20. if(dis>3||(dis>1.5f&&angle>100))
  21. {
  22. Hide();
  23. //
  24. }
  25. }
  26. // 隐藏
  27. private void Hide()
  28. {
  29. gameObject.SetActive(false);
  30. HeadBtnManager.Instance.ShowResetBtn(ScenesManager.SceneType.ShowDH, this);
  31. }
  32. // 显示
  33. public void Show( Vector3 pos )
  34. {
  35. transform.position = pos;
  36. transform.eulerAngles = new Vector3(0,OpenXRCamera.Instance.transform.eulerAngles.y, 0);
  37. gameObject.SetActive(true);
  38. }
  39. }