private void OnTriggerExit2D(Collider2D collider) { if (!enabled || collider.gameObject.layer != (int)PhysLayers.ENEMIES) { return; } IHitResponder hit = collider.gameObject.GetComponentInSelfChildOrParent <IHitResponder>(); if (hit == null) { return; } foreach (ColliderInfo info in _hitReponders) { if (info.Responder != hit) { continue; } info.Touching = false; break; } }
private void OnTriggerEnter2D(Collider2D collider) { if (!enabled || collider.gameObject.layer != (int)PhysLayers.ENEMIES) { return; } IHitResponder hit = collider.gameObject.GetComponentInSelfChildOrParent <IHitResponder>(); ColliderInfo colInfo = _hitReponders.FirstOrDefault(info => info.Responder == hit); if (colInfo == null) { colInfo = new ColliderInfo { Responder = hit, Cooldown = 0 }; _hitReponders.Add(colInfo); } colInfo.Touching = true; }