Я получаю странные результаты при попытке синхронизировать позиции игроков в сети. У меня есть сетевая игра, в которой я создаю двух игроков в мире. У каждого игрока есть сетевой вид, на нем нет наблюдаемого объекта. Каждое фиксированное обновление, я делаю вызов RPC для обновления позиции игрока на сервере. Однако позиция только начинает обновляться, когда я перемещаю игрока вправо. Любое другое движение не будет показываться, пока я не начну правильно перемещать плеер, и в этом случае позиция будет немедленно обновляться. Вот соответствующий код:Странные результаты Синхронизация позиций игрока по сети
void FixedUpdate()
{
if (networkView.isMine)
{
grounded = Physics2D.OverlapCircle(groundCheck.position, groundRadius, whatIsGround);
anim.SetBool("ground", grounded);
anim.SetFloat("vSpeed", rigidbody2D.velocity.y);
float move = Input.GetAxis("Horizontal");
anim.SetFloat("speed", Mathf.Abs(move));
rigidbody2D.velocity = new Vector2(move * MaxSpeed, rigidbody2D.velocity.y);
float speed = move * MaxSpeed;
networkView.RPC("UpdateNetworkPosition", RPCMode.Others, LastPosition, speed);
}
}
[RPC]
void UpdateNetworkPosition(Vector3 newPosition, float speed)
{
Debug.Log("Updating network position");
transform.position = Vector3.Lerp(transform.position, newPosition, Time.deltaTime * speed);
}
Спасибо за любой совет!