- Home /
Colliding players spin out of control and rotation is local. Need help! [C#]
My game is a 2D topdown. The only thing you can do so far is move around and rotate your player based on the position of your mouse.
Problem #1: When two players collide, they start moving by themselves into infinity!
Problem #2: Rotation isn't synced at all. I'm pretty sure that both characters would rely on their own player's mouse for rotation if they were on different machines, unlike here, but it's obvious that rotation isn't being communicated.
Now I haven't got even the slightest idea for why either of these things occurs, thus I am here. The following is the basic code used to move inside FixedUpdate.
float x = Input.GetAxisRaw("Horizontal");
float y = Input.GetAxisRaw("Vertical");
Vector3 input = new Vector3(x , y , 0);
input.Normalize();
Vector3 pos = transform.position;
pos += (input*speed)*Time.deltaTime;
transform.position = pos;
This is the code for rotating toward the cursor inside Update.
Vector3 mousepos = Input.mousePosition;
mousepos.z = 10;
Vector2 direction = (cam.ScreenToWorldPoint(mousepos) - transform.position).normalized;
transform.up = direction;
When a player is generated, if they're not the local player, their movement script is disabled. Players have the Transform sync mode of "Sync Rigidbody2D" because "Sync Transform" is really laggy even at a send rate of 29 despite fixing both of these issues.
How do I resolve them? Or maybe I should ask how do I make "Sync Transform" not laggy since that appears to be functional in my setup?
Your answer
Follow this Question
Related Questions
Random insect movement 1 Answer
How to make cars rotate towards a waypoint while turning? 0 Answers
In unity 2D c# how to rotate an object like geometry dash? 1 Answer
How can I make my character walk along the slope? 1 Answer
Character during moving has blur effect and shakes. How can I fix it? 0 Answers