我正在制作一个动作游戏,该动作只能以3D方式移动x和z轴。我正在尝试使其与在线多人游戏兼容。Player对象具有这样的组件。
对OnlinePlayerController.cs使用StandardAssets的操纵杆,存在使用刚体速度移动的代码。代码写在下面。
从另一个场景加载在线场景时,总会发生滞后。
using UnityEngine;
using Photon.Pun;
using Photon.Realtime;
using UnityStandardAssets.CrossPlatformInput;
public class OnlinePlayerController : MonoBehaviourPunCallbacks
{
public float speed;
[SerializeField]
GameObject Rotation; //Omitted because it has nothing to do with movement
void Update()
{
x = CrossPlatformInputManager.GetAxisRaw("Horizontal");
z = CrossPlatformInputManager.GetAxisRaw("Vertical");
rigd.velocity = new Vector3(x * speed, 0, z * speed);
}
}
您可以从this article中看到,我试图解决滞后问题,但没有任何变化。
Player对象只有一个刚体才能使用Rigidbody.velocity。重力无效,与地板的摩擦力高,不会打滑。
Unity2019.2.6f1
PUN2免费
重要的是,在编辑器中从场景播放时没有滞后。我认为,像其他问题一样,光子不是原因,但我认为Unity是主要原因。 (例如,先前的场景正在干扰,等等。)
这是我第一次使用PUN2,所以对此我不太了解。
我该怎么解决?
对不起,一切都是我的错误。该代码在场景转换之前运行。
Time.fixedDeltaTime = 0.2f;