コード例 #1
0
 private void passEventToChild(CollisionEventInfo info)
 {
     if (_eventChainChild != null)
     {
         _eventChainChild.actOnEvent(info);
     }
 }
コード例 #2
0
    private IEnumerator delayedActOnEvent(CollisionEventInfo info)
    {
        _collisionEventSender.AddWaitForBeforeKill(this);
        yield return(new WaitForSeconds(actionDelay));

        ActOnCollisionEvent(info);
        passEventToChild(info);
        _collisionEventSender.RemoveWaitForBeforeKill(this);
    }
コード例 #3
0
 private void actOnEvent(CollisionEventInfo info)
 {
     if (actionDelay < float.Epsilon)
     {
         ActOnCollisionEvent(info);
         passEventToChild(info);
     }
     else
     {
         StartCoroutine(delayedActOnEvent(info));
     }
 }
コード例 #4
0
    private void sendEvent(CollisionEventInfo info)
    {
        var recipients = GetComponents <IReceiveCollisionEvents>();

        foreach (var recipient in recipients)
        {
            if (recipient.ReceiveCollisionEvent(info)) // clients can stop event propagation by returning true
            {
                break;
            }
        }
    }
コード例 #5
0
 public bool ReceiveCollisionEvent(CollisionEventInfo info)
 {
     if (!info.Intruder.MatchesTagMask <ElementTags>(elementTags))
     {
         return(false);
     }
     if (!info.Type.MatchesMask(collisionMask))
     {
         return(false);
     }
     actOnEvent(info);
     return(stopEventPropagation);
 }
コード例 #6
0
 protected override void ActOnCollisionEvent(CollisionEventInfo info)
 {
     if (coins > 0)
     {
         if (info.Intruder.MatchesTagMask <ElementTags>(ElementTags.IsPlayer) && info.Type.MatchesMask(CollisionEventType.HeadBumped))
         {
             dispenseCoin();
         }
         else if (info.Intruder.MatchesTagMask <ElementTags>(ElementTags.IsCharacter))
         {
             dispenseCoin();
         }
     }
 }
コード例 #7
0
 protected abstract void ActOnCollisionEvent(CollisionEventInfo info);
コード例 #8
0
 protected override void ActOnCollisionEvent(CollisionEventInfo info)
 {
     _collisionEventSender.AddWaitForBeforeKill(this);
     _audioSource.InstantPlay(audioClip);
     StartCoroutine(_waitForAudioClipToFinish());
 }
コード例 #9
0
    protected override void ActOnCollisionEvent(CollisionEventInfo info)
    {
        var t = transform;

        Instantiate(prefabToSpawn, t.position, t.rotation);
    }
コード例 #10
0
 protected override void ActOnCollisionEvent(CollisionEventInfo info)
 {
     info.Intruder.GetComponent <ICanBeKilled>()?.Kill();
 }
コード例 #11
0
 protected override void ActOnCollisionEvent(CollisionEventInfo info)
 {
     info.Intruder.GetComponent <ICanBounce>()?.Bounce();
 }
コード例 #12
0
    protected override void ActOnCollisionEvent(CollisionEventInfo info)
    {
        var go = gameObject;

        _collisionEventSender.DeferredKill(go);
    }
コード例 #13
0
 protected override void ActOnCollisionEvent(CollisionEventInfo info)
 {
     gameObject.GetComponent <Animator>().SetTrigger(triggerName);
 }
コード例 #14
0
ファイル: SpawnPoint.cs プロジェクト: jdeepwell/TinyRobot
 protected override void ActOnCollisionEvent(CollisionEventInfo info)
 {
     StaticGameManager.Instance.spawnPoint = gameObject.transform.position;
 }
コード例 #15
0
ファイル: Finish.cs プロジェクト: jdeepwell/TinyRobot
 protected override void ActOnCollisionEvent(CollisionEventInfo info)
 {
     StaticGameManager.Instance.FinishReached();
 }