Files
2026-02-21 16:45:37 +08:00

58 lines
1.1 KiB
C#

using UnityEngine;
namespace OculusSampleFramework
{
public class GrabbableCrosshair : MonoBehaviour
{
public enum CrosshairState
{
Disabled = 0,
Enabled = 1,
Targeted = 2
}
private CrosshairState m_state;
private Transform m_centerEyeAnchor;
[SerializeField]
private GameObject m_targetedCrosshair;
[SerializeField]
private GameObject m_enabledCrosshair;
private void Start()
{
m_centerEyeAnchor = GameObject.Find("CenterEyeAnchor").transform;
}
public void SetState(CrosshairState cs)
{
m_state = cs;
switch (cs)
{
case CrosshairState.Disabled:
m_targetedCrosshair.SetActive(false);
m_enabledCrosshair.SetActive(false);
break;
case CrosshairState.Enabled:
m_targetedCrosshair.SetActive(false);
m_enabledCrosshair.SetActive(true);
break;
case CrosshairState.Targeted:
m_targetedCrosshair.SetActive(true);
m_enabledCrosshair.SetActive(false);
break;
}
}
private void Update()
{
if (m_state != CrosshairState.Disabled)
{
base.transform.LookAt(m_centerEyeAnchor);
}
}
}
}