123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class UIFollow : MonoBehaviour
- {
- public ScenesManager.SceneType type;
- public float dis;
- public float angle;
- public Vector3 pos;
- private bool state = true;
- void Start()
- {
-
- pos = HeadBtnManager.Instance.transform.position;
- Show(pos);
- }
- private void Awake()
- {
- HeadBtnManager.Instance.uiFollow = this;
- }
-
- void Update()
- {
- if(state)
- {
- 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));
- angle = Vector3.Angle(OpenXRCamera.Instance.head.GetComponent<Camera>().transform.forward, transform.position - OpenXRCamera.Instance.head.transform.position);
-
- if (dis > 3 || (dis > 2.5f && angle > 100))
- {
- Hide();
-
- }
- }
-
- }
-
- public void Hide()
- {
- state = false;
-
- transform.position = new Vector3(0,0,10000);
- HeadBtnManager.Instance.ShowResetBtn(type, this);
- }
-
- public void Show( Vector3 pos )
- {
-
- transform.position = pos;
- transform.eulerAngles = new Vector3(0,OpenXRCamera.Instance.head.transform.eulerAngles.y, 0);
-
- if (type == ScenesManager.SceneType.ShowRTC)
- ShowRoom.Instance.ResetPosition();
- state = true;
- }
- }
|