void HitEnemyInFront() { var checkHit = AfterDashFrontEnemyDetector.GroundCheckHit(); if (checkHit.collider != null && DefineHittedObjectType(checkHit.collider.transform) == HittedObjectType.Enemy) { var eventArgs = new HitDetectionEventArgs() { HittedObject = checkHit.collider.gameObject, HittedObjectType = HittedObjectType.Enemy, HitPoint = checkHit.point, HitDirection = HitDirection.RightSide }; PlayerHittedObject?.Invoke(eventArgs); } }
// OnCollisionEnter2D is called when this collider2D/rigidbody2D has begun touching another rigidbody2D/collider2D (2D physics only) void OnCollisionEnter2D(Collision2D collision) { var hittedObject = collision.gameObject; var objectType = DefineHittedObjectType(collision.transform); var hitPoint = collision.GetContact(0).point; var hitDirection = DefineDirection(hitPoint, objectType); var eventArgs = new HitDetectionEventArgs() { HittedObject = hittedObject, HittedObjectType = objectType, HitPoint = hitPoint, HitDirection = hitDirection }; if (IsACrash(eventArgs)) { PlayerCrashed?.Invoke(); } else { PlayerHittedObject?.Invoke(eventArgs); } }