Пример #1
0
 void collider_onCollisionStarted(Colliders.CollisionInfo info)
 {
     if (info.Collider1 == collider && info.Collider2.Group.Name == "Blocker")
     {
         Move(-curTickMovement);
     }
     if (info.Collider2 == collider && info.Collider1.Group.Name == "Blocker")
     {
         Move(-curTickMovement);
     }
 }
Пример #2
0
        private CollisionInfo RegisterCollision(Collider c1, Collider c2, AABB intersection)
        {
            for (int i = 0; i < collisions.Count; i++)
            {
                if ((collisions[i].c1 == c1 && collisions[i].c2 == c2) || (collisions[i].c1 == c2 && collisions[i].c2 == c1))
                {
                    return(collisions[i]);
                }
            }
            CollisionInfo c = new CollisionInfo(c1, c2, intersection);

            collisions.Add(c);

            c1.InvokeCollisionStarted(c);
            c2.InvokeCollisionStarted(c);
            if (onCollisionStarted != null)
            {
                onCollisionStarted.Invoke(c);
            }

            return(c);
        }
Пример #3
0
 internal void InvokeCollisionStarted(CollisionInfo c)
 {
     if (onCollisionStarted != null)
         onCollisionStarted.Invoke(c);
 }
Пример #4
0
 internal void InvokeCollisionEnded(CollisionInfo c)
 {
     if (onCollidionEnded != null)
         onCollidionEnded.Invoke(c);
 }
Пример #5
0
 internal void InvokeColliding(CollisionInfo c)
 {
     if (onColliding != null)
         onColliding.Invoke(c);
 }
Пример #6
0
        private CollisionInfo RegisterCollision(Collider c1, Collider c2, AABB intersection)
        {
            for (int i = 0; i < collisions.Count; i++)
            {
                if ((collisions[i].c1 == c1 && collisions[i].c2 == c2) || (collisions[i].c1 == c2 && collisions[i].c2 == c1))
                {
                    return collisions[i];
                }
            }
            CollisionInfo c = new CollisionInfo(c1, c2, intersection);
            collisions.Add(c);

            c1.InvokeCollisionStarted(c);
            c2.InvokeCollisionStarted(c);
            if (onCollisionStarted != null)
                onCollisionStarted.Invoke(c);

            return c;
        }
Пример #7
0
 void collider_onCollisionStarted(Colliders.CollisionInfo info)
 {
     collisions.Add(info);
     OnCollisionsChanged();
 }
Пример #8
0
 void collider_onCollidionEnded(Colliders.CollisionInfo info)
 {
     collisions.Remove(info);
     OnCollisionsChanged();
 }