【问题标题】:How to smooth camera when falling in unity?统一时如何平滑相机?
【发布时间】:2016-03-29 08:56:43
【问题描述】:

我正在制作一个无尽的跳投,它变成了一个跌倒类型的游戏。相机在上升过程中非常流畅,但在下降过程中却非常生涩。

我不知道如何让它只跟随玩家的脚本而不是混蛋。

相机上升:

 float newHeightOfCamera = Mathf.Lerp(currentCameraHeight, playerHeightY, Time.deltaTime * 10);
 transform.position = new Vector3(transform.position.x, newHeightOfCamera, transform.position.z);

相机下降:

 float newHeightOfCamera = Mathf.Lerp(currentCameraHeight, playerHeightY - fallCamera, Time.deltaTime);
 transform.position = new Vector3(transform.position.x, newHeightOfCamera - cameraFallLocation, transform.position.z);

在向下的过程中,玩家会到达屏幕顶部并设置为固定速度。

 pc.GetComponent<Rigidbody2D>().velocity = new Vector2(0, fallSpeed);  //changes falling speed

【问题讨论】:

  • 请注意,您如何在上行中使用Time.deltaTime * 10 的时间范围。在下行中,您如何单独使用Time.deltaTime 的时间范围。也可以尝试相乘
  • 你能解释一下fallCameracameraFallLocation是什么吗?这些值也会随时间变化吗?
  • 你的代码示例在哪里?同时更新还是在其他地方更新?

标签: unity3d camera


【解决方案1】:

我仍在等待对我的 cmets 的响应,但 90% 的问题可以通过将所有代码示例从 Update 移动到 LateUpdate(甚至从 FixedUpdate 移动到 LateUpdate )。在大多数情况下,这就足够了。但是,我们仍然需要了解更多细节以确保它是解决方案。

【讨论】:

    【解决方案2】:

    很抱歉,我从这个游戏中休息了一下,因为它令人沮丧。这是我想出的

    这是为了坠落。我最终不需要相机来追赶我,我只是希望它保持静止。

            float newHeightOfCamera = playerHeightY - fallCamera;
            transform.position = new Vector3(transform.position.x, newHeightOfCamera - cameraFallLocation, transform.position.z);
    

    fallCamera 是相机的位置。我希望角色向上时位于屏幕底部,向下时位于屏幕顶部。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-12
      • 1970-01-01
      • 1970-01-01
      • 2014-01-20
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      • 2014-07-25
      相关资源
      最近更新 更多