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); });
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); });