Example #1
0
 public static void WriteClientInputHolder(this NetworkWriter writer, ClientInputHolder inputHolder)
 {
     writer.WriteInt32(inputHolder.playerInputs.Count);
     for (int i = 0; i < inputHolder.playerInputs.Count; i++)
     {
         writer.WritePlayerInputDefinition(inputHolder.playerInputs[i]);
     }
 }
Example #2
0
 public void CmdSendInputs(ClientInputHolder inputs)
 {
     //gameManager.rollbackSession.add
     foreach (NetworkConnectionToClient nc in NetworkServer.connections.Values)
     {
         // Ignore the client that sent the message.
         if (nc.connectionId != connectionToClient.connectionId)
         {
             TargetRecieveInputs(nc, inputs);
         }
     }
 }
Example #3
0
        public ClientInputHolder PollLocalInputs()
        {
            List <PlayerInputDefinition> inputs = new List <PlayerInputDefinition>();

            for (int i = 0; i < players; i++)
            {
                float thrustMag = Input.GetAxis("Vertical");
                float turnMag   = Input.GetAxis("Horizontal");
                bool  isFiring  = Input.GetKey(KeyCode.Space);
                inputs.Add(new PlayerInputDefinition(thrustMag, turnMag, isFiring));
            }
            ClientInputHolder clientInputHolder = new ClientInputHolder(inputs);

            return(clientInputHolder);
        }
Example #4
0
        protected virtual void Tick(float dt)
        {
            NetworkIdentity localIdentity      = NetworkClient.connection.identity;
            ClientManager   localClientManager = localIdentity.GetComponent <ClientManager>();

            // Grab the client's inputs.
            // This method also sends our inputs to the other clients.
            ClientInputHolder clientInputs = localClientManager.PollLocalInputs();

            // Add the local client's inputs to the local simulation.
            URollbackErrorCode result = gameManager
                                        .rollbackSession.AddLocalInput(localIdentity.connectionToClient.connectionId, clientInputs);

            if (result == URollbackErrorCode.OK)
            {
            }
        }
Example #5
0
 public void TargetRecieveInputs(NetworkConnection target, ClientInputHolder inputs)
 {
     gameManager.rollbackSession
     .AddRemoteInput(NetworkClient.connection.connectionId, target.connectionId, inputs);
 }