private void OnTriggerExit(Collider inCollider) { if (!CheckFilters(inCollider, ColliderProxyEventMask.OnExit)) { return; } RemoveOccupant(inCollider); m_OnTriggerExit.Invoke(inCollider); m_TaggedTriggerExit.Invoke(m_Id, inCollider); }
/// <summary> /// 重ならなくなった時のコールバックメソッドを実行します。 /// </summary> /// <param name="other">重なっていたオブジェクト</param> private void HandleColliderExit(SpriteCollider2D other) { RemoveCollidedPair(other); onColliderExit.Invoke(other); other.onColliderExit.Invoke(this); }
void Update() { hit = raycast.GetResult().collider; if (forceClear) { hit = null; forceClear = false; } if (hit != priorHit) { if (priorHit) { Exit.Invoke(priorHit); } if (hit) { Enter.Invoke(hit); } } priorHit = hit; hit = null; }
public void Input(Collider other, TouchType touchType, CollisionType collisionType) { if (filter.RequestActivate(other, touchType, collisionType)) { response.Invoke(other); } }
public void OnTriggerEnter(Collider other) { if (TriggerEnter != null) { TriggerEnter.Invoke(other); } }
void OnTriggerExit(Collider collider) { if (collider.gameObject.layer == LayerMask.NameToLayer(_targetLayer.Value)) { _onExit.Invoke(collider); } }
public void OnTriggerExit(Collider other) { if (TriggerExit != null) { TriggerExit.Invoke(other); } }
protected virtual void OnCollisionEnter(Collision collision) { if (isPickedUp && (collision.gameObject.tag == "Hand")) { return; //ignore this collision } if (!indestrucable) { float otherDensity = collision.gameObject.GetComponent <PhysicalObject>()?.density ?? 0.1f; if (otherDensity <= 0) { return; } float potentialDamage = otherDensity * collision.relativeVelocity.magnitude; if (potentialDamage > dmgThreshold) { durability -= potentialDamage; onDurabilityLoss.Invoke(collision.collider); } if (durability <= 0) { Destroy(gameObject); } } onHit.Invoke(collision.collider); }
void RespondIfValid(Collider other, ColliderEvent response) { if (IsValid(other)) { response.Invoke(other); } }
public void OnTriggerStay2D(Collider2D other) { if (Utils.LayerIsInMask(other.gameObject.layer, whitelist)) { onTriggerStay?.Invoke(other); } }
private void OnTriggerExit(Collider other) { if (IsCallTrigger(other.gameObject)) { onTriggerExit?.Invoke(other); } }
/// <summary> /// Invokes the custom unity event in response to OnTriggerEnter. /// </summary> /// <param name="other">The collider reference to send with the event.</param> protected virtual void OnTriggerEnter(Collider other) { if (triggerEvent != null && layerMask.Contains(other.gameObject.layer)) { triggerEvent.Invoke(other); } }
private void OnTriggerStay(Collider other) { if (!activated) { return; } OnStay?.Invoke(other); }
private void OnTriggerEnter(Collider other) { if (!activated) { return; } OnEnter?.Invoke(other); }
void OnTriggerEnter(Collider collider) { //Debug.LogFormat("Enter {0}", LayerMask.LayerToName(collider.gameObject.layer)); if (collider.gameObject.layer == LayerMask.NameToLayer(_targetLayer.Value)) { _onEnter.Invoke(collider); } }
private void OnTriggerExit(Collider other) { if (!activated) { return; } OnExit?.Invoke(other); }
private void OnTriggerExit(Collider col) { if (ShouldIgnore(col)) { return; } OnExit.Invoke(col); }
protected virtual void OnTriggerStay(Collider other) { if (!ready || other.transform.IsChildOf(ignoreChildren)) { return; } onStayCollider.Invoke(other); }
void Refresh() { var nearby = trackColliders.Refresh(); var inView = filterByAngle.Input(nearby); var inSight = lineOfSight.Input(inView); var visibleTargets = targetFilter.Input(inSight); var closestTarget = findClosest.Input(visibleTargets); ClosestTarget.Invoke(closestTarget); }
private void OnTriggerEnter(Collider inCollider) { if (!CheckFilters(inCollider, ColliderProxyEventMask.OnEnter)) { return; } AddOccupant(inCollider); m_OnTriggerEnter.Invoke(inCollider); m_TaggedTriggerEnter.Invoke(m_Id, inCollider); }
private void OnTriggerEnter(UnityEngine.Collider other) { if (string.IsNullOrEmpty(m_tag) || other.CompareTag(m_tag)) { if (CanTrigger) { alreadyTriggeredInFrame = true; hasTriggered = true; on_TriggerEnter.Invoke(other); } } }
void OnTriggerExit(Collider other) { if (!active) { return; } if (MalbersTools.Layer_in_LayerMask(other.gameObject.layer, Ignore)) { return; } OnTrigger_Exit.Invoke(other); }
private void OnTriggerStay2D(Collider2D col) { if (canInteract(EventState.Stay) && colliderState == ColliderState.Trigger) { if (stayTags.Contains(col.gameObject.tag) && stayTags != null) { stayEvent.Invoke(); if (destroyTrigger) { Destroy(gameObject); } } else if (stayTags == null) { stayEvent.Invoke(); if (destroyTrigger) { Destroy(gameObject); } } } }
private void OnTriggerExit(Collider other) { if (compatibleTags.Count == 0) { Debug.LogError("Trigger component has no compatible tags"); } TagComponent tag = other.GetComponent <TagComponent>(); if (tag != null && tag.HasAnyOf(compatibleTags)) { onTriggerExit.Invoke(other); } }
/* * コールバックのハンドリング */ /// <summary> /// 重なった時のコールバックメソッドを実行します。 /// 前フレームで重なっていなかったペアであればOnColliderEnterイベントもハンドルします。 /// </summary> /// <param name="other">重なっているオブジェクト</param> private void HandleColliding(SpriteCollider2D other) { if (!IsCollidedPair(other)) { CollidedPairs.Add(new CollidedPair(this, other)); onColliderEnter.Invoke(other); other.onColliderEnter.Invoke(this); } onColliding.Invoke(other); other.onColliding.Invoke(this); }
private void OnTriggerExit2D(Collider2D col) { if (canInteract(EventState.Exit) && colliderState == ColliderState.Trigger) { if (exitTags.Contains(col.gameObject.tag) && exitTags != null) { exitEvent.Invoke(); if (destroyTrigger) { Destroy(gameObject); } } else if (exitTags == null) { exitEvent.Invoke(); if (destroyTrigger) { Destroy(gameObject); } } } }
void OnTriggerExit(Collider collider) { if (!IsTriggerable(collider)) { return; } triggeed = true; if (OnExitTrigger != null) { OnExitTrigger.Invoke(collider); } }
#pragma warning restore 0649 public void RequestActivate(Collider other, TouchType touchType, CollisionType collisionType) { if (this.collisionType != CollisionType.Any && this.collisionType != collisionType || other.isTrigger && otherColliderType == CollisionType.Collision || !other.isTrigger && otherColliderType == CollisionType.Trigger) { return; } if (this.touchType == touchType) { Output.Invoke(other); } }
private void OnTriggerExit(Collider other) { var rb = other.attachedRigidbody; if (!CheckObject(other.gameObject) || rb != null && !_rigidbodies.Contains(rb)) { return; } _rigidbodies.Remove(rb); OnTriggerExitEvent?.Invoke(other); TriggerExitEvent?.Invoke(other); TriggerExitReporterEvent?.Invoke(other, this); }
protected void OnTriggerExit(Collider other) { if (!enabled) { return; } if (other.GetComponent <IndexUIActivator>() == null) { return; } PassedOnTriggerExit.Invoke(other); }