Ejemplo n.º 1
0
        private static (IPatrolGuardTileManager, GameObject) Setup()
        {
            var surrogate = Object.Instantiate(CoroutinePrefab);

            var tiles = new List <IEnvTile>
            {
                new EnvTile(Vector3.zero, (0, 0)),
                new EnvTile(new Vector3(2, 0, 0), (1, 0)),
                new EnvTile(new Vector3(4, 0, 0), (2, 0)),
                new EnvTile(new Vector3(0, 0, 2), (0, 1)),
                new EnvTile(new Vector3(2, 0, 2), (1, 1)),
                new EnvTile(new Vector3(4, 0, 2), (2, 1))
            };

            // spawn agent on first tile
            var agent = new GameObject();

            agent.transform.position = tiles[0].Position;


            IPatrolGuardTileManager patrolGuardTileManager =
                new PatrolGuardTileManager(surrogate, tiles, agent.transform);

            return(patrolGuardTileManager, agent);
        }
Ejemplo n.º 2
0
        public void Test_Same_Distance_Multiple_tiles()
        {
            var agentGo = new GameObject();

            agentGo.transform.position = Vector3.zero;
            var envTiles = new List <EnvTile>
            {
                new EnvTile(new Vector3(0, 0, 1), (1, 1)),
                new EnvTile(new Vector3(0, 0, 1), (1, 1)),
                new EnvTile(new Vector3(0, 0, 2), (1, 1)),
                new EnvTile(new Vector3(0, 0, 2), (1, 1)),
                new EnvTile(new Vector3(0, 0, 3), (1, 1)),
                new EnvTile(new Vector3(0, 0, 3), (1, 1)),
                new EnvTile(new Vector3(0, 0, 3), (1, 1))
            };

            var nearestTile = agentGo.transform.GetNearestTile(3, envTiles, x => true);

            Assert.AreEqual(3, nearestTile.Count);

            nearestTile = agentGo.transform.GetNearestTile(7, envTiles, x => true);
            Assert.AreEqual(new Vector3(0, 0, 1), nearestTile[0].Position);
            Assert.AreEqual(new Vector3(0, 0, 1), nearestTile[1].Position);
            Assert.AreEqual(new Vector3(0, 0, 2), nearestTile[2].Position);
            Assert.AreEqual(new Vector3(0, 0, 2), nearestTile[3].Position);
            Assert.AreEqual(new Vector3(0, 0, 3), nearestTile[4].Position);
            Assert.AreEqual(new Vector3(0, 0, 3), nearestTile[5].Position);
            Assert.AreEqual(new Vector3(0, 0, 3), nearestTile[6].Position);
        }
Ejemplo n.º 3
0
        public void TileTestSimplePasses()
        {
            var t = new EnvTile(new Vector3(0, 0, 0), (0, 0));

            Assert.AreEqual(false, t.HasEnv);
            Assert.AreEqual(false, t.HasGuard);
            Assert.AreEqual(false, t.HasSpy);
            Assert.AreEqual(false, t.IsExit);
            Assert.AreEqual(false, t.OnPath);
        }
Ejemplo n.º 4
0
        private (Transform t, List <ITile>) GetTestStuff()
        {
            var testGameObject = new GameObject();

            testGameObject.transform.position = new Vector3(0, 0, 0);
            var tiles = new List <ITile>
            {
                new EnvTile(new Vector3(0, 0, 1), (1, 1)),
                new EnvTile(new Vector3(0, 0, 2), (1, 1)),
                new EnvTile(new Vector3(0, 0, 3), (1, 1)),
                new EnvTile(new Vector3(0, 0, 4), (1, 1)),
                new EnvTile(new Vector3(0, 0, 5), (1, 1)),
                new EnvTile(new Vector3(0, 0, 6), (1, 1)),
                new EnvTile(new Vector3(0, 0, 7), (1, 1))
            };

            return(testGameObject.transform, tiles);
        }