Изменение скорости игрока приводит к резким движениям в многопользовательской игре Unity Photon Fusion.C#

Место общения программистов C#
Ответить
Anonymous
 Изменение скорости игрока приводит к резким движениям в многопользовательской игре Unity Photon Fusion.

Сообщение Anonymous »

Я работаю над многопользовательской 2D-игрой в Unity с фотонным синтезом. У моего плеера скорость по умолчанию, скажем, 5f. Я меняю скорость игрока (на 10 футов), когда хочу, чтобы игрок двигался быстрее в течение определенного времени. Позже я хочу, чтобы мой игрок двигался со скоростью по умолчанию. Изменение скорости вызывает резкие движения, особенно у клиента. Дергание происходит, когда скорость изменяется со скорости по умолчанию на 10f, движение со скоростью 10f подходит для определенного периода времени, и снова при изменении скорости с 10f на значение по умолчанию возникает рывок. Я считаю, что внезапное резкое изменение скорости прогнозируется неверно, и исправление этого прогнозируемого значения является причиной резких движений.
Ниже приведена часть моего кода:`используя UnityEngine;
используя Fusion;
public class Player: NetworkBehaviour
{
[Networked] public float PlayerSpeed ​​{ get ; набор;

Код: Выделить всё

public override void Spawned()
{
RPC_SetPlayerSpeed(5f);
}

public override void FixedUpdateNetwork()
{
// below is psuedo code
if (LShiftPressed)
{
RPC_SetPlayerSpeed(10f);
}

if (TimerIsDone)
{
RPC_SetPlayerSpeed(5f);
}
}

[Rpc(RpcSources.All, RpcTargets.All)]
public void RPC_SetPlayerSpeed(float speed)
{
PlayerSpeed = speed;
}
}`

Код: Выделить всё

PlayerRigidbody.MovePosition(PlayerRigidbody.position + movement * Runner.DeltaTime);
— вот как я перемещаю свой плеер.
На стороне клиента центр ввода вызывает RPC_SetPlayerSpeed ​​для изменения скорости по сети.
Я попробовал интерполировать компонент NetworkRigidbody2d во все доступные источники данных интерполяции (авто, снимки, прогноз, без интерполяции) в фотонном слиянии. Что мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/784 ... multiplaye
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»