我一直在努力为我的游戏平滑我的相机运动几天,我无法达到合理的平滑度。是否可以对此代码进行任何更正以改善平滑度?我也试过了moveTowards()函数,但没有用。
/**************************** CAMERA MOVEMENT *********************************/
void FixedUpdate () {
//Do we need to spawn new platforms yet?
Vector2 playerHeight = playerTransform.position;
if (playerHeight.y > nextPlatformCheck) {
PlatformMaintenaince (); //Spawn new platforms
}
//Update camera position if the player has climbed
Vector2 currentCameraHeight = transform.position;
if (playerTransform.position.y > currentCameraHeight.y)
{
transform.position = Vector2.Lerp(new Vector2(transform.position.x,0.0f), new Vector2(0.0f, playerHeight.y), smooth * Time.deltaTime);
}
else {
// If player is too low, gameover.
if ((playerHeight.y) < (currentCameraHeight.y - 5.5)) {
GameOver();
}
}
}
答案 0 :(得分:1)
使用Update功能代替FixedUpdate。 FixedUpdate仅在一定数量的od帧之后被调用。
答案 1 :(得分:1)
所有相机移动计算应在LateUpdate ()
中进行,让Update()
获取玩家位置,然后让相机在更新计算后使用该位置。