public IEnumerator SpawnObjectThenDeleteItAfterConnectTest()
    {
        NetworkClient.ShutdownAll();
        NetworkServer.Reset();
        TestSetup();
        StartServer();

        deleteMe = GameObject.Instantiate(GetBridgeScript.rocketPrefab, Vector3.zero, Quaternion.identity);
        NetworkServer.Spawn(deleteMe);

        StartClientAndConnect();

        while (!isDone)
        {
            yield return(null);
        }

        ClientScene.DestroyAllClientObjects();
        yield return(null);

        NetworkServer.Destroy(playerObj);
    }
    public IEnumerator SpawnObjectBeforeConnectTest()
    {
        NetworkClient.ShutdownAll();
        NetworkServer.Reset();

        SetupPrefabs();
        StartServer();

        GameObject obj = (GameObject)Instantiate(rockPrefab, Vector3.zero, Quaternion.identity);

        NetworkServer.Spawn(obj);
        StartClientAndConnect();

        while (!isDone)
        {
            yield return(null);
        }

        ClientScene.DestroyAllClientObjects();
        yield return(null);

        NetworkServer.Destroy(obj);
        NetworkServer.Destroy(playerObj);
    }
예제 #3
0
        public IEnumerator DisablesAllNetworkSceneObjectsInScene()
        {
            // sceneId 0 is prefab
            TestListenerBehaviour listener1 = CreateAndAddObject(20001, 101);
            TestListenerBehaviour listener2 = CreateAndAddObject(20002, 102);
            TestListenerBehaviour listener3 = CreateAndAddObject(20003, 103);

            int disableCalled1 = 0;
            int disableCalled2 = 0;
            int disableCalled3 = 0;

            listener1.onDisableCalled += () => disableCalled1++;
            listener2.onDisableCalled += () => disableCalled2++;
            listener3.onDisableCalled += () => disableCalled3++;

            int destroyCalled1 = 0;
            int destroyCalled2 = 0;
            int destroyCalled3 = 0;

            listener1.onDestroyCalled += () => destroyCalled1++;
            listener2.onDestroyCalled += () => destroyCalled2++;
            listener3.onDestroyCalled += () => destroyCalled3++;

            ClientScene.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(disableCalled3, 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");
            Assert.That(destroyCalled3, Is.EqualTo(0), "Scene objects should not be destroyed");
        }
예제 #4
0
        public IEnumerator DestroysAllNetworkPrefabsInScene()
        {
            // sceneId 0 is prefab
            TestListenerBehaviour listener1 = CreateAndAddObject(10001, 0);
            TestListenerBehaviour listener2 = CreateAndAddObject(10002, 0);
            TestListenerBehaviour listener3 = CreateAndAddObject(10003, 0);

            int destroyCalled1 = 0;
            int destroyCalled2 = 0;
            int destroyCalled3 = 0;

            listener1.onDestroyCalled += () => destroyCalled1++;
            listener2.onDestroyCalled += () => destroyCalled2++;
            listener3.onDestroyCalled += () => destroyCalled3++;

            ClientScene.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));
            Assert.That(destroyCalled3, Is.EqualTo(1));
        }
예제 #5
0
    public IEnumerator LocalClientSpawnsObjectAfterConnectTest()
    {
        NetworkClient.ShutdownAll();
        NetworkServer.Reset();

        TestSetup();
        StartServer();
        StartLocalClient();

        while (!isDone)
        {
            yield return(null);
        }

        // 2 is player and rock
        Assert.AreEqual(2, numStartServer);
        Assert.AreEqual(2, numStartClient);

        ClientScene.DestroyAllClientObjects();
        yield return(null);

        NetworkServer.Destroy(obj);
        NetworkServer.Destroy(playerObj);
    }
예제 #6
0
 public override void OnStopClient()
 {
     base.OnStopClient();
     ClientScene.DestroyAllClientObjects();
     ClientScene.localPlayers.Clear();
 }
예제 #7
0
 public override void OnEnter()
 {
     base.OnEnter();
     ClientScene.DestroyAllClientObjects();
     Finish();
 }
 void PreStartConnect()
 {
     NetworkServer.SetAllClientsNotReady();
     ClientScene.DestroyAllClientObjects();
 }