/// <summary> /// Calls OnUse on the current selection. /// </summary> public virtual void UseCurrentSelection() { if (usable != null) { clickedDownOn = null; if (distance <= usable.maxUseDistance) { usable.OnUseUsable(); // If within range, send the OnUse message: var fromTransform = (actorTransform != null) ? actorTransform : this.transform; if (broadcastToChildren) { usable.gameObject.BroadcastMessage("OnUse", fromTransform, SendMessageOptions.DontRequireReceiver); } else { usable.gameObject.SendMessage("OnUse", fromTransform, SendMessageOptions.DontRequireReceiver); } } else { // Otherwise report too far if configured to do so: if (!string.IsNullOrEmpty(tooFarMessage)) { DialogueManager.ShowAlert(tooFarMessage); } tooFarEvent.Invoke(); } } }
/// <summary> /// Calls OnUse on the current selection. /// </summary> public virtual void UseCurrentSelection() { if ((currentUsable != null) && (currentUsable.gameObject != null) && (Time.time >= timeToEnableUseButton)) { currentUsable.OnUseUsable(); var fromTransform = (actorTransform != null) ? actorTransform : this.transform; if (broadcastToChildren) { currentUsable.gameObject.BroadcastMessage("OnUse", fromTransform, SendMessageOptions.DontRequireReceiver); } else { currentUsable.gameObject.SendMessage("OnUse", fromTransform, SendMessageOptions.DontRequireReceiver); } } }