Т.е. дергается только движение, и только своего перса, и только на своем экране.
Вот скрипт передвижения, в чем может быть проблема?
Синтаксис:
Используется csharp
private void FixedUpdate() {
if (isServer) {
rb.MovePosition(rb.position + direction * moveSpeed * Time.fixedDeltaTime);
myTransform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
}
if (isLocalPlayer) {
direction = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
CmdDirection(direction);
Vector3 lookPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.transform.position.z));
lookPos = lookPos - myTransform.position;
float angle = Mathf.Atan2(lookPos.y, lookPos.x) * Mathf.Rad2Deg;
CmdRotation(angle);
}
}
[Command]
public void CmdDirection(Vector2 dir) {
direction = dir;
}
[Command]
public void CmdRotation(float ang) {
angle = ang;
}
if (isServer) {
rb.MovePosition(rb.position + direction * moveSpeed * Time.fixedDeltaTime);
myTransform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
}
if (isLocalPlayer) {
direction = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
CmdDirection(direction);
Vector3 lookPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.transform.position.z));
lookPos = lookPos - myTransform.position;
float angle = Mathf.Atan2(lookPos.y, lookPos.x) * Mathf.Rad2Deg;
CmdRotation(angle);
}
}
[Command]
public void CmdDirection(Vector2 dir) {
direction = dir;
}
[Command]
public void CmdRotation(float ang) {
angle = ang;
}