大家好,大家好!今天我打开了一个录音程序(OBS),它降低了我的FPS (可以理解)。然而,我注意到相机卡顿的帧率越低(它甚至发生在60帧/秒,只是不太明显)。脚本如下:
public Transform target;
public float moveSpeed = 10f;
public float offset = -1f;
bool startFollowing = false;
// Update is called once per frame
void LateUpdate()
{
float targetYPos = target.position.y - offset;
Vector3 newPosition =
new Vector3(transform.position.x, targetYPos, transform.position.z);
//ignore this if statement
if (startFollowing)
{
//this makes the camera follow the player in only the Y axis
transform.position =
Vector3.Lerp(transform.position, newPosition, moveSpeed * Time.unscaledDeltaTime);
}
} 那么,是什么导致了这种卡顿呢?在较低的帧率下,它会变得非常糟糕和明显,所以任何帮助都会非常感谢,谢谢。
编辑:我认为同样值得指出的是,玩家跑得越快,它就会变得越紧张。
发布于 2019-11-18 23:11:49
我一直在寻找答案,最后我在这个blog上找到了这个家伙的神奇解决方案:(很抱歉格式问题)
public Transform target;
public float moveSpeed = 10f;
public float offset = -1f;
bool startFollowing = false;
// Update is called once per frame
void LateUpdate()
{
float targetYPos = target.position.y - offset;
Vector3 newPosition =
new Vector3(transform.position.x, targetYPos, transform.position.z);
if (startFollowing)
{
//this makes the camera follow the player in only the Y axis
float cameraY =
Damp(transform.position.y, newPosition.y, 0.0025f, Time.deltaTime);
transform.position = new Vector3(transform.position.x, cameraY,
transform.position.z);
}
}
// Smoothing rate dictates the proportion of source remaining after one second
public static float Damp(float source, float target, float smoothing, float dt)
{
return Mathf.Lerp(source, target, 1 - Mathf.Pow(smoothing, dt));
}完美的工作!
https://stackoverflow.com/questions/58914636
复制相似问题