Beispiel #1
0
 /// <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>()
         );
 }
Beispiel #2
0
        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);
            }
        }