Exemple #1
0
        public IEnumerator SpawnWithValue() => UniTask.ToCoroutine(async() =>
        {
            // create an object, set the target and spawn it
            UnityEngine.GameObject newObject = UnityEngine.Object.Instantiate(playerPrefab);
            GenericBehaviourWithSyncVarDeeperImplement newBehavior = newObject.GetComponent <GenericBehaviourWithSyncVarDeeperImplement>();
            newBehavior.baseValue         = 2;
            newBehavior.middleValue       = 22;
            newBehavior.implementValue    = 222;
            newBehavior.target            = serverComponent;
            newBehavior.targetIdentity    = serverIdentity;
            newBehavior.middleTarget      = serverComponent;
            newBehavior.middleIdentity    = serverIdentity;
            newBehavior.implementTarget   = serverComponent;
            newBehavior.implementIdentity = serverIdentity;
            serverObjectManager.Spawn(newObject);

            // wait until the client spawns it
            uint newObjectId = newBehavior.NetId;
            NetworkIdentity newClientObject = await AsyncUtil.WaitUntilSpawn(client.World, newObjectId);

            // check if the target was set correctly in the client
            GenericBehaviourWithSyncVarDeeperImplement newClientBehavior = newClientObject.GetComponent <GenericBehaviourWithSyncVarDeeperImplement>();
            Assert.AreEqual(newClientBehavior.baseValue, 2);
            Assert.AreEqual(newClientBehavior.middleValue, 22);
            Assert.AreEqual(newClientBehavior.implementValue, 222);
            Assert.That(newClientBehavior.target, Is.SameAs(clientComponent));
            Assert.That(newClientBehavior.targetIdentity, Is.SameAs(clientIdentity));
            Assert.That(newClientBehavior.middleTarget, Is.SameAs(clientComponent));
            Assert.That(newClientBehavior.middleIdentity, Is.SameAs(clientIdentity));
            Assert.That(newClientBehavior.implementTarget, Is.SameAs(clientComponent));
            Assert.That(newClientBehavior.implementIdentity, Is.SameAs(clientIdentity));

            // cleanup
            serverObjectManager.Destroy(newObject);
        });
Exemple #2
0
        public IEnumerator SpawnWithTarget() => UniTask.ToCoroutine(async() =>
        {
            // create an object, set the target and spawn it
            UnityEngine.GameObject newObject = InstantiateForTest(playerPrefab);
            var newBehavior    = newObject.GetComponent <SampleBehaviorWithNI>();
            newBehavior.target = serverIdentity;
            serverObjectManager.Spawn(newObject);

            // wait until the client spawns it
            var newObjectId     = newBehavior.NetId;
            var newClientObject = await AsyncUtil.WaitUntilSpawn(client.World, newObjectId);

            // check if the target was set correctly in the client
            var newClientBehavior = newClientObject.GetComponent <SampleBehaviorWithNI>();
            Assert.That(newClientBehavior.target, Is.SameAs(clientIdentity));

            // cleanup
            serverObjectManager.Destroy(newObject);
        });