void UpdateHoverState()
{
Ray ray;
RaycastHit hit;
// get the camera forward vector and position
Ray camRay = CameraRay();
Vector3 cameraPosition = camRay.origin;
Vector3 cameraForward = camRay.direction;
ray = new Ray(cameraPosition, cameraForward);
if (Physics.Raycast(ray, out hit))
{
if (previousHitGameObject != hit.transform.gameObject)
{
EndHover();
SendEventToGameObject(hit.transform.gameObject, "OnHoverStart");
if (hit.transform.gameObject.tag == kCrosshairTargetable)
{
_animatedCrosshair.SetState(ReticleState.kOpen);
}
previousHitGameObject = hit.transform.gameObject;
}
}
else
{
EndHover();
}
}