private void ProcessCollisionEvent(Collision collision, CollisionEventBroadcaster broadcaster) { if (collision.collider.transform.root == transform) { return; } if (!LayerMaskExtensions.Contains(collisionLayers, collision.collider.gameObject.layer)) { return; } foreach (Group group in groups) { group.TryDamage(collision, broadcaster); } }
public void TryDamage(Collision collision, CollisionEventBroadcaster broadcaster) { bool included = false; for (int i = 0; i < indices.Length; i++) { if (broadcaster.muscle.index == indices[i]) { included = true; break; } } if (!included) { return; } damTime = Time.time; enabled = true; }
public void OnCollisionExitEvent(Collision collision, CollisionEventBroadcaster broadcaster) { }
public void OnCollisionStayEvent(Collision collision, CollisionEventBroadcaster broadcaster) { ProcessCollisionEvent(collision, broadcaster); }