Exemple #1
0
 public void PointOut(RayPointEventArgs e)
 {
     foreach (IRayPointer pointer in _rayPointers)
     {
         pointer.OnPointOut(e);
     }
 }
        private void UpdateRaycast()
        {
            Ray        ray = new Ray(transform.position, transform.forward);
            RaycastHit hit;

            bool bHit = Physics.Raycast(ray, out hit);

            if (_previousTarget && _previousTarget != hit.transform)
            {
                RayPointEventArgs argsOut = new RayPointEventArgs();
                argsOut.distance = 0;
                argsOut.target   = _previousTarget;
                RayPointerEventManager.instance?.PointOut(argsOut);
                _previousTarget = null;
            }

            if (bHit && _previousTarget != hit.transform)
            {
                RayPointEventArgs argsIn = new RayPointEventArgs();
                argsIn.distance = hit.distance;
                argsIn.target   = hit.transform;
                RayPointerEventManager.instance?.PointIn(argsIn);
                _previousTarget = hit.transform;
            }

            if (!bHit)
            {
                _previousTarget = null;
            }
        }
Exemple #3
0
 public void OnPointOut(RayPointEventArgs e)
 {
     if (e.target != null)
     {
         Debug.Log("OnPointerOut: " + SelectedObject.name);
         SelectedObject           = null;
         DistanceOfSelectedObject = 0;
     }
 }
Exemple #4
0
 public void OnPointIn(RayPointEventArgs e)
 {
     if (e.target != null)
     {
         SelectedObject           = e.target.gameObject;
         DistanceOfSelectedObject = e.distance;
         Debug.Log("OnPointerIn: " + SelectedObject.name + " Distance: " + e.distance);
     }
 }