Ejemplo n.º 1
0
        public void TestSpawnTable()
        {
            var gameObject1 = new GameObject();

            gameObject1.name = "1";

            var gameObject2 = new GameObject();

            gameObject2.name = "2";

            var fixedRandom = new FixedRandom();

            fixedRandom.values.Add(.2f);
            fixedRandom.values.Add(.7f);

            var spawnTable = gameObject1.AddComponent <SpawnTable>();

            spawnTable.random = fixedRandom;
            spawnTable.spawnItems.Clear();
            spawnTable.spawnItems.Add(new SpawnTable.Item(gameObject1, 0.5f));
            spawnTable.spawnItems.Add(new SpawnTable.Item(gameObject2, 0.5f));

            // FUTURE: add more unit tests if needed
            var nextSpawn = spawnTable.NextSpawn();

            Assert.AreEqual("1", nextSpawn.name);

            nextSpawn = spawnTable.NextSpawn();
            Assert.AreEqual("2", nextSpawn.name);

            GameObject.DestroyImmediate(gameObject1);
        }
Ejemplo n.º 2
0
        public void TestFixedRandom()
        {
            var fixedRandom = new FixedRandom();

            fixedRandom.values.Add(0.5f);
            fixedRandom.values.Add(0.7f);
            fixedRandom.values.Add(0.2f);

            Assert.AreEqual(0.5f, fixedRandom.Value);
            Assert.AreEqual(0.7f, fixedRandom.Value);
            Assert.AreEqual(0.2f, fixedRandom.Value);
            Assert.AreEqual(0.5f, fixedRandom.Value);
        }
Ejemplo n.º 3
0
        public void UnitTests()
        {
            var fixedRandom = new FixedRandom();

            var test        = new WeightedRandom(fixedRandom);
            var w1          = new Weight(1.0f);
            var w2          = new Weight(0.5f);
            var w3          = new Weight(0.25f);
            var totalWeight = w1.Value + w2.Value + w3.Value;

            test.Add(w1);
            test.Add(w2);
            test.Add(w3);

            Assert.AreEqual(w1, test.ChooseFactor(.5f / totalWeight));
            Assert.AreEqual(w1, test.ChooseFactor(.9f / totalWeight));
            Assert.AreEqual(w2, test.ChooseFactor(1.1f / totalWeight));
            Assert.AreEqual(w3, test.ChooseFactor(1.6f / totalWeight));
        }
Ejemplo n.º 4
0
        public void TestSpawner()
        {
            var gameObject1 = new GameObject();

            gameObject1.name = "1";

            var gameObject2 = new GameObject();

            gameObject2.name = "2";

            var fixedRandom = new FixedRandom();

            fixedRandom.values.Add(.2f);
            fixedRandom.values.Add(.7f);

            var spawner = gameObject1.AddComponent <Spawner>();

            spawner.spawnAction = AddSpawn;

            spawner.random = fixedRandom;
            spawner.spawnItems.Clear();
            spawner.spawnItems.Add(new SpawnTable.Item(gameObject1, 0.5f));
            spawner.spawnItems.Add(new SpawnTable.Item(gameObject2, 0.5f));

            spawner.SpawnTime = 1.0f;
            spawner.OnUpdate(new TimeSlice(0.5f));
            Assert.AreEqual(0, spawnList.Count);

            spawner.OnUpdate(new TimeSlice(1.0f));
            Assert.AreEqual(1, spawnList.Count);

            spawner.OnUpdate(new TimeSlice(.9f));
            Assert.AreEqual(1, spawnList.Count);

            spawner.OnUpdate(new TimeSlice(.3f));
            Assert.AreEqual(2, spawnList.Count);

            // Unity appends "(Clone)" to objects, so check the first character
            Assert.AreEqual('1', spawnList[0].name[0]);
            Assert.AreEqual('2', spawnList[1].name[0]);
        }