private void passEventToChild(CollisionEventInfo info) { if (_eventChainChild != null) { _eventChainChild.actOnEvent(info); } }
private IEnumerator delayedActOnEvent(CollisionEventInfo info) { _collisionEventSender.AddWaitForBeforeKill(this); yield return(new WaitForSeconds(actionDelay)); ActOnCollisionEvent(info); passEventToChild(info); _collisionEventSender.RemoveWaitForBeforeKill(this); }
private void actOnEvent(CollisionEventInfo info) { if (actionDelay < float.Epsilon) { ActOnCollisionEvent(info); passEventToChild(info); } else { StartCoroutine(delayedActOnEvent(info)); } }
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; } } }
public bool ReceiveCollisionEvent(CollisionEventInfo info) { if (!info.Intruder.MatchesTagMask <ElementTags>(elementTags)) { return(false); } if (!info.Type.MatchesMask(collisionMask)) { return(false); } actOnEvent(info); return(stopEventPropagation); }
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(); } } }
protected abstract void ActOnCollisionEvent(CollisionEventInfo info);
protected override void ActOnCollisionEvent(CollisionEventInfo info) { _collisionEventSender.AddWaitForBeforeKill(this); _audioSource.InstantPlay(audioClip); StartCoroutine(_waitForAudioClipToFinish()); }
protected override void ActOnCollisionEvent(CollisionEventInfo info) { var t = transform; Instantiate(prefabToSpawn, t.position, t.rotation); }
protected override void ActOnCollisionEvent(CollisionEventInfo info) { info.Intruder.GetComponent <ICanBeKilled>()?.Kill(); }
protected override void ActOnCollisionEvent(CollisionEventInfo info) { info.Intruder.GetComponent <ICanBounce>()?.Bounce(); }
protected override void ActOnCollisionEvent(CollisionEventInfo info) { var go = gameObject; _collisionEventSender.DeferredKill(go); }
protected override void ActOnCollisionEvent(CollisionEventInfo info) { gameObject.GetComponent <Animator>().SetTrigger(triggerName); }
protected override void ActOnCollisionEvent(CollisionEventInfo info) { StaticGameManager.Instance.spawnPoint = gameObject.transform.position; }
protected override void ActOnCollisionEvent(CollisionEventInfo info) { StaticGameManager.Instance.FinishReached(); }