- Home /
How do I store input of another player over the network?
Hello,
So I've got this to work, and each player is able to control their own gameobject.
if (isLocalPlayer)
{
movex = Input.GetAxis("Horizontal");
movey = Input.GetAxis("Vertical");
rb.velocity = new Vector2(movex * Speed, movey * Speed);
}
I'd like to do something like this but not sure how:
if (!isLocalPlayer)
{
movex = player2.Input.GetAxis("Horizontal");
movey = player2.Input.GetAxis("Vertical");
rb.velocity = new Vector2(movex * Speed, movey * Speed);
}
The game is going to be 2 player, but possibly 4 player later on, so it would be nice if I can get the input information from like playerID or whatever the network version of that is lol.
I'm super new to the networking thing.
I tried using the NetworkTransform and got it to work, apart from not being as smooth as I had hoped. I want to try having the local computer calculate both player's rigidbodies.
Thanks a lot!
Answer by Vaidoras · Jan 08, 2017 at 08:25 PM
Instead of sending Player2 input to Player1 so that player 1 can calculate the change vector, just sync that vector to the server, the other clients can read it and apply it to the rigid body.
Thanks for the answer, the problem I'm having is that my player(a car, with about 8 rigidbodies) uses physics to move. When I tried syncing all the rigidbodies, or even the transforms, it looks really bad. So I thought it would be easier to only sync the inputs.
Your answer
Follow this Question
Related Questions
Assotiating custom attributes to a NetworkPlayer 0 Answers
How can a client get it's own Networkplayer variable? 2 Answers
Spawn networked player then add local object references [UNET] 1 Answer
Spawning objects in multiplayer game 1 Answer
What's the best way to send packets of input to the server consistently? 0 Answers