예제 #1
0
 /// <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();
         }
     }
 }
예제 #2
0
 /// <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);
         }
     }
 }