为什么我的相机运动如此紧张?

时间:2014-08-05 02:00:05

标签: c# mobile optimization unity3d game-development

我一直在努力为我的游戏平滑我的相机运动几天,我无法达到合理的平滑度。是否可以对此代码进行任何更正以改善平滑度?我也试过了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();
                    }
            }
    }

2 个答案:

答案 0 :(得分:1)

使用Update功能代替FixedUpdate。 FixedUpdate仅在一定数量的od帧之后被调用。

答案 1 :(得分:1)

所有相机移动计算应在LateUpdate ()中进行,让Update()获取玩家位置,然后让相机在更新计算后使用该位置。