/// <summary> /// マウスに登録された当たり判定が衝突した情報を取得する。 /// </summary> /// <returns></returns> public List <asd.Collision2DInfo> GetCollisionInfo() { return (InsideArea() ? Collisions2DInfo .Where(x => x.TheirsCollider.OwnerObject.AbsoluteBeingDrawn) .Where(x => x.SelfCollider.OwnerObject.Equals(this)) .ToList() : new List <asd.Collision2DInfo>() ); }
internal void RaiseOnCollisionCallbacks() { var collisionEventsNum = CoreObject.GetCollisionEventsNum(); Collisions2DInfo.Clear(); for (int index = 0; index < collisionEventsNum; index++) { var collisionEvent = CoreObject.GetCollisionEvent(index); var collision = collisionEvent.GetCollision(); var colliderA = asd.Particular.Dictionary.Get(Layer.CollidersMap, collision.GetColliderA().GetCreationId()); var colliderB = asd.Particular.Dictionary.Get(Layer.CollidersMap, collision.GetColliderB().GetCreationId()); Collider2D myCollider = null; Collider2D theirCollider = null; if (myColliders.Contains(colliderA)) { myCollider = colliderA; theirCollider = colliderB; } else { myCollider = colliderB; theirCollider = colliderA; } var collisionType = collisionEvent.GetCollisionType(); var collisionInfo = new Collision2DInfo(myCollider, theirCollider, (CollisionType)collisionType); if (collisionType == swig.CollisionType.Enter) { OnCollisionEnter(collisionInfo); } else if (collisionType == swig.CollisionType.Stay) { OnCollisionStay(collisionInfo); } else if (collisionType == swig.CollisionType.Exit) { OnCollisionExit(collisionInfo); } Collisions2DInfo.Add(collisionInfo); } }