public void Input(Collider2D other, TouchType touchType, CollisionType collisionType) { if (touchFilter.RequestActivate(other, touchType, collisionType) && tagFilter.Input(other)) { response.Invoke(other); } }
void OnTriggerExit2D(Collider2D other) { if (isNodeActive) { _onTriggerExit.Invoke(other); } }
void OnTriggerStay2D(Collider2D other) { if (isNodeActive) { _onTriggerStay.Invoke(other); } }
private void OnTriggerExit2D(Collider2D other) { if (IsCallTrigger(other.gameObject)) { onTriggerExit?.Invoke(other); } }
private void OnTriggerExit2D(Collider2D collision) { if (!activated) { return; } OnExit?.Invoke(collision); }
private void OnTriggerStay2D(Collider2D collision) { if (!activated) { return; } OnStay?.Invoke(collision); }
void OnTriggerExit2D(Collider2D collider) { if (!IsTriggerable(collider)) { return; } triggeed = true; if (OnExitTrigger2D != null) { OnExitTrigger2D.Invoke(collider); } }
void Update() { Vector2 pos = transform.position; Vector2 up = transform.up; float half = angle / 2f; float step = angle / division; List <Collider2D> stayeds = new List <Collider2D>(); List <Collider2D> exiteds = new List <Collider2D>(m_Colliders); for (float degree = -half; degree <= half; degree += step) { Vector2 p = pos + Rotate(up, degree) * radius; RaycastHit2D hit = Physics2D.Linecast(pos, p); Collider2D collider = hit.collider; if (null != collider) { if (!m_Colliders.Contains(collider)) { m_Colliders.Add(collider); onEnter.Invoke(collider); } else { exiteds.Remove(collider); if (!stayeds.Contains(collider)) { stayeds.Add(collider); onStay.Invoke(collider); } } } } foreach (var exited in exiteds) { m_Colliders.Remove(exited); onExit.Invoke(exited); } exiteds.Clear(); }
private void HandleGameEvent(EventTrigger gameEvent, object obj = null) { if (eventTrigger != gameEvent || ignoreEvent) { return; } switch (eventTrigger) { case EventTrigger.TriggerEnter: case EventTrigger.TriggerExit: colliderEvent.Invoke(obj as Collider); break; case EventTrigger.TriggerEnter2D: case EventTrigger.TriggerExit2D: collider2DEvent.Invoke(obj as Collider2D); break; case EventTrigger.CollisionEnter: case EventTrigger.CollisionExit: collisionEvent.Invoke(obj as Collision); break; case EventTrigger.CollisionEnter2D: case EventTrigger.CollisionExit2D: collision2DEvent.Invoke(obj as Collision2D); break; default: unityEvent.Invoke(); break; } if (triggerOnce && gameEvent != EventTrigger.OnDestroy) { Destroy(this); } }
private void OnTriggerExit2D(Collider2D other) { _onTriggerExit2D.Invoke(other); }
public void Hit(GameObject gameObject, Collider2D collider) { OnHit.Invoke(gameObject, collider); }
private void OnTriggerStay2D(Collider2D collision) { _onTriggerStay2D.Invoke(collision); }
public virtual void Invoke(Collider2D data) { _callback.Invoke(data); }
public void OnTriggerExit2D(Collider2D collider) { Debug.Log(collider.name + " has exit " + transform.parent.name + " - " + gameObject.name); TriggerExit2D.Invoke(collider); }
public void OnTriggerStay2D(Collider2D collider) { TriggerStay2D.Invoke(collider); }