private Collision CollisionBetweenGameObjects(
            UnityEngine.GameObject colliderGameObject,
            UnityEngine.GameObject collideeGameObject)
        {
            var colliderEntity =
                gameObjects.EntityForGameObject(colliderGameObject);
            var collideeEntity =
                gameObjects.EntityForGameObject(collideeGameObject);
            var colliderBody         = bodies.BodyForEntity(colliderEntity);
            var resolvedColliderBody =
                colliderBody.TeleportTo(colliderGameObject.transform.position);

            colliderGameObject.transform.position = colliderBody.Location;
            var collideeBody = bodies.BodyForEntity(collideeEntity);

            if (collideeBody == null)
            {
                return(null);
            }
            var collision = Collision.BetweenBodies(
                resolvedColliderBody,
                collideeBody);

            return(collision);
        }
Ejemplo n.º 2
0
        public void Does_not_support_a_null_collidee_body()
        {
            var collider         = new Guid("db8956a2-2b44-40a8-ab9e-8e0e4f064220");
            var colliderLocation = new UnityEngine.Vector3(3.0f, 0.0f, 0.0f);
            var colliderBody     = Body.ForEntityLocatedAt(
                collider,
                colliderLocation);
            Body collideeBody = null;

            Assert.Throws <ArgumentNullException>(() =>
            {
                Collision.BetweenBodies(
                    colliderBody,
                    collideeBody);
            });
        }
Ejemplo n.º 3
0
        public void Does_not_support_a_null_collider_body()
        {
            Body colliderBody     = null;
            var  collidee         = new Guid("0a35997f-1c46-426d-a9ee-dcbca907cae9");
            var  collideeLocation = new UnityEngine.Vector3(5.0f, 0.0f, 0.0f);
            var  collideeBody     = Body.ForEntityLocatedAt(
                collidee,
                collideeLocation);

            Assert.Throws <ArgumentNullException>(() =>
            {
                Collision.BetweenBodies(
                    colliderBody,
                    collideeBody);
            });
        }
Ejemplo n.º 4
0
        private static Collision CreateCollision()
        {
            var collider         = new Guid("db8956a2-2b44-40a8-ab9e-8e0e4f064220");
            var colliderLocation = new UnityEngine.Vector3(3.0f, 0.0f, 0.0f);
            var colliderBody     = Body.ForEntityLocatedAt(
                collider,
                colliderLocation);
            var collidee         = new Guid("0a35997f-1c46-426d-a9ee-dcbca907cae9");
            var collideeLocation = new UnityEngine.Vector3(5.0f, 0.0f, 0.0f);
            var collideeBody     = Body.ForEntityLocatedAt(
                collidee,
                collideeLocation);

            return(Collision.BetweenBodies(
                       colliderBody,
                       collideeBody));
        }
Ejemplo n.º 5
0
        /// <summary>
        ///     Create a new <see cref="AlwaysCollisions"/>.
        /// </summary>
        internal AlwaysCollisions()
        {
            var player          = new Guid("5905dcc6-f59d-4a96-85c0-2b2e1da02ec8");
            var playersLocation = new UnityEngine.Vector3(0.0f, 0.0f, 0.0f);

            playersBody = Body.ForEntityLocatedAt(
                player,
                playersLocation);
            var enemy          = new Guid("c15f7c57-f638-4cda-8a1c-07889d03d4f0");
            var enemysLocation = new UnityEngine.Vector3(3.5f, 0.0f, 3.5f);

            enemysBody = Body.ForEntityLocatedAt(
                enemy,
                enemysLocation);
            var adjustedPlayersLocation =
                new UnityEngine.Vector3(3.0f, 0.0f, 3.0f);
            var adjustedPlayersBody = Body.ForEntityLocatedAt(
                player,
                adjustedPlayersLocation);

            playersCollision = Collision.BetweenBodies(
                adjustedPlayersBody,
                enemysBody);
        }