public IEnumerator DisablesAllNetworkSceneObjectsInScene() { // sceneId 0 is prefab TestListenerBehaviour listener1 = CreateAndAddObject(101); TestListenerBehaviour listener2 = CreateAndAddObject(102); int disableCalled1 = 0; int disableCalled2 = 0; listener1.onDisableCalled += () => disableCalled1++; listener2.onDisableCalled += () => disableCalled2++; int destroyCalled1 = 0; int destroyCalled2 = 0; listener1.onDestroyCalled += () => destroyCalled1++; listener2.onDestroyCalled += () => destroyCalled2++; NetworkClient.DestroyAllClientObjects(); // wait for frame to make sure unity events are called yield return(null); Assert.That(disableCalled1, Is.EqualTo(1)); Assert.That(disableCalled2, Is.EqualTo(1)); Assert.That(destroyCalled1, Is.EqualTo(0), "Scene objects should not be destroyed"); Assert.That(destroyCalled2, Is.EqualTo(0), "Scene objects should not be destroyed"); }
public void CallsUnspawnHandlerInsteadOfDestroy() { // sceneId 0 is prefab TestListenerBehaviour listener1 = CreateAndAddObject(0); TestListenerBehaviour listener2 = CreateAndAddObject(0); Guid guid1 = Guid.NewGuid(); Guid guid2 = Guid.NewGuid(); int unspawnCalled1 = 0; int unspawnCalled2 = 0; unspawnHandlers.Add(guid1, x => unspawnCalled1++); unspawnHandlers.Add(guid2, x => unspawnCalled2++); listener1.GetComponent <NetworkIdentity>().assetId = guid1; listener2.GetComponent <NetworkIdentity>().assetId = guid2; int disableCalled1 = 0; int disableCalled2 = 0; listener1.onDisableCalled += () => disableCalled1++; listener2.onDisableCalled += () => disableCalled2++; NetworkClient.DestroyAllClientObjects(); Assert.That(unspawnCalled1, Is.EqualTo(1)); Assert.That(unspawnCalled2, Is.EqualTo(1)); Assert.That(disableCalled1, Is.EqualTo(0), "Object with UnspawnHandler should not be destroyed"); Assert.That(disableCalled2, Is.EqualTo(0), "Object with UnspawnHandler should not be destroyed"); }
void CreateAndAddObject(ulong sceneId, out TestListenerBehaviour serverComp, out TestListenerBehaviour clientComp) { CreateNetworkedAndSpawnPlayer(out _, out NetworkIdentity serverIdentity, out serverComp, out _, out NetworkIdentity clientIdentity, out clientComp, connectionToClient); serverIdentity.sceneId = clientIdentity.sceneId = sceneId; }
public void ClearsSpawnedList() { // sceneId 0 is prefab TestListenerBehaviour listener1 = CreateAndAddObject(0); TestListenerBehaviour listener2 = CreateAndAddObject(0); NetworkClient.DestroyAllClientObjects(); Assert.That(NetworkClient.spawned, Is.Empty); }
TestListenerBehaviour CreateAndAddObject(uint netId, ulong sceneId) { CreateNetworked(out GameObject go, out NetworkIdentity identity); identity.netId = netId; identity.sceneId = sceneId; TestListenerBehaviour listener = go.AddComponent <TestListenerBehaviour>(); spawned.Add(netId, identity); return(listener); }
public void ClearsSpawnedList() { // sceneId 0 is prefab TestListenerBehaviour listener1 = CreateAndAddObject(30001, 0); TestListenerBehaviour listener2 = CreateAndAddObject(30002, 0); TestListenerBehaviour listener3 = CreateAndAddObject(30003, 0); ClientScene.DestroyAllClientObjects(); Assert.That(spawned, Is.Empty); }
TestListenerBehaviour CreateAndAddObject(uint netId, ulong sceneId) { GameObject go = new GameObject(); _createdObjects.Add(go); NetworkIdentity identity = go.AddComponent <NetworkIdentity>(); identity.netId = netId; identity.sceneId = sceneId; TestListenerBehaviour listener = go.AddComponent <TestListenerBehaviour>(); spawned.Add(netId, identity); return(listener); }
public IEnumerator DestroysAllNetworkPrefabsInScene() { // sceneId 0 is prefab TestListenerBehaviour listener1 = CreateAndAddObject(0); TestListenerBehaviour listener2 = CreateAndAddObject(0); int destroyCalled1 = 0; int destroyCalled2 = 0; listener1.onDestroyCalled += () => destroyCalled1++; listener2.onDestroyCalled += () => destroyCalled2++; NetworkClient.DestroyAllClientObjects(); // wait for frame to make sure unity events are called yield return(null); Assert.That(destroyCalled1, Is.EqualTo(1)); Assert.That(destroyCalled2, Is.EqualTo(1)); }