protected void SetupServerBehavior()
        {
            // Make the network object on the client and make sure that the server creates it too
            serverBehavior = new RPCBehavior();
            serverBehavior.Initialize(server);
            serverObj = serverBehavior.networkObject;

            WaitFor(() => { return(clientObj != null); });
            clientBehavior = new RPCBehavior();
            clientBehavior.Initialize(clientObj);

            if (otherClient == null)
            {
                WaitFor(() => { return(client.NetworkObjects.Count == 1 && server.NetworkObjects.Count == 1); });
                return;
            }

            WaitFor(() => { return(otherClientObj != null); });
            otherClientBehavior = new RPCBehavior();
            otherClientBehavior.Initialize(otherClientObj);

            WaitFor(() =>
            {
                return(client.NetworkObjects.Count == 1 &&
                       otherClient.NetworkObjects.Count == 1 &&
                       server.NetworkObjects.Count == 1);
            });
        }
        protected void Destroy(TestNetworkObject obj)
        {
            obj.Destroy();

            // Make sure that the object was destroyed on the server and the client
            if (otherClient == null)
            {
                WaitFor(() => { return(server.NetworkObjectList.Count == 0 && client.NetworkObjectList.Count == 0); });
            }
            else
            {
                WaitFor(() =>
                {
                    return(server.NetworkObjectList.Count == 0 &&
                           client.NetworkObjectList.Count == 0 &&
                           otherClient.NetworkObjectList.Count == 0);
                });
            }

            serverBehavior      = null;
            clientBehavior      = null;
            otherClientBehavior = null;
            serverObj           = null;
            clientObj           = null;
            otherClientObj      = null;
        }