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");
        }
Example #3
0
 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);
        }
Example #6
0
        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);
        }
Example #7
0
        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));
        }