Пример #1
0
 public void SetLaserpointerEnabled(bool enabled)
 {
     if (!enabled && PointingAt != null)
     {
         PointingAt.PointerExit(this);
         PointingAt = null;
     }
     SetLaserVisible(enabled);
     _laserIsEnabled = enabled;
 }
Пример #2
0
        private void SetNewHitTarget(ILaserPointerTarget newTarget)
        {
            var targetIsSame = (newTarget == PointingAt || IsLockedAtTarget);

            if (targetIsSame)
            {
                // Update position on Target
                if (PointingAt != null)
                {
                    PointingAt.PointerUpdate(this);
                }
                return;
            }

            if (Controller.ActiveState == InteractiveController.States.PointerCapturedOnClickable)
            {
                return;
            }

            // Exit old target
            if (PointingAt != null && !PointingAt.Equals(null)) // Also checking with .Equals because ==Operator is not overridden from MonoBehaviour
            {
                PointingAt.PointerExit(this);
            }

            PointingAt = newTarget;
            UpdateStyleIfTargetChanged();

            if (NewTargetEnteredEvent != null)
            {
                NewTargetEnteredEvent(this, new PointingAtChangedEventArgs(PointingAt, newTarget));
            }

            if (newTarget != null)
            {
                newTarget.PointerEnter(this);
            }
        }