Flip Character Direction Networking
I have a simple platformer I am currently working on. I am relatively new to Unity been developing on Unity for the last 2 weeks.
The platformer itself is fine, my issues is with the network manager, I am having a difficulty sending a particular piece of information over the network.
Let me elaborate:
This is the code I use to flip the direction of my character in the
controls.cs
class
Rigidbody playerbody;
Animator animetor;
bool playerDirectionRight;
playerbody= GetComponent<Rigidbody>();
animetor= GetComponent<Animator>();
playerDirectionRight= true;
void FixedUpdate()
{
float move = Input.GetAxis("Horizontal");
animetor.SetFloat("speed", Mathf.Abs(move));
playerbody.velocity = new Vector3(move * runSpeed, playerbody.velocity.y, 0);
if(move>0 && !playerDirectionRight)
{
Flip();
}
else if(move<0 && playerDirectionRight)
{
Flip();
}
}
void Flip()
{
playerDirectionRight= !playerDirectionRight;
Vector3 theScale = transform.localScale;
theScale.z *= -1;
transform.localScale = theScale;
}
This works fine in my local client, the character changes(Flips) directions. However this does not work in multiplayer as I do not pass this in my network manager in any way.
In my networking I have my controls:
public class PlayerNetworkSetup : NetworkBehaviour {
public override void OnStartLocalPlayer()
{
GetComponent<controls>().enabled = true;
}
I am able to see both of my characters move positions in their own local clients, but when I move player1 from left to right player2 is not able to see the Flip() take place. How could I possibly transmit this Flip() over the network?
Your answer
Follow this Question
Related Questions
local scale network 0 Answers
UNET (Multiplayer) calling [command] function twice 0 Answers
How do I sync Rigidbody2D over the network? 0 Answers
[UNET 5.2] Multiple local authority for 1 object? 0 Answers
Assign Network Manager an Online Scene with Script 0 Answers