public void SetLaserpointerEnabled(bool enabled) { if (!enabled && PointingAt != null) { PointingAt.PointerExit(this); PointingAt = null; } SetLaserVisible(enabled); _laserIsEnabled = enabled; }
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); } }