【问题标题】:Following camera Unity跟随相机 Unity
【发布时间】:2015-09-25 22:30:57
【问题描述】:

我希望相机跟随玩家。为此,我使用玩家(目标)变换并更改相机的变换。

public class CameraScript : MonoBehaviour
{
    public Transform target;
    private Vector3 delta;

    void Start()
    {
        delta = Camera.main.transform.position - target.position;
    }

    void Update()
    {
        Camera.main.transform.position = target.position + delta;
    }
}

这种方法有效,但它是一个更好的解决方案?

【问题讨论】:

  • 可以说是基于意见的。什么是“更好”?你见过标准的 Unity3D 平滑相机跟随脚本吗?
  • 我的意思是对 Rigidbody2D 使用 AddForce 和 velocity 之类的东西。我不确定这个方法不会重新调用计算物理。
  • 为什么要为相机添加刚体?考虑editing您的问题以包含您的意图
  • 我没有向相机添加刚体(这是示例)。我想,可能存在某种方法,它不使用直接变换。但是你最后的评论,关于流畅的相机跟随,帮助我。
  • 您是否发现正在跟踪的对象有点不稳定?如果不是,那么我认为您不必担心太多,这是一个很好、直接的解决方案。

标签: c# unity3d camera


【解决方案1】:

归结为“更好”的含义,但通常做一些插值以平滑相机的运动看起来更好(尽管对于 VR 来说并不那么简单)

这样的事情应该可以工作:

public class CameraScript : MonoBehaviour
{
    public Transform target;
    public float lerpSpeed;
    private Vector3 delta;

    void Start()
    {
        delta = Camera.main.transform.position - target.position;
    }

    void Update()
    {
        Camera.main.transform.position = Vector3.Lerp(Camera.main.transform.position, target.position + delta, lerpSpeed * Time.deltaTime);
    }
}

【讨论】:

    【解决方案2】:

    您可以在 Inspector 中让您的相机成为您的玩家GameObject 的子对象,这样相机就会随着玩家的移动而移动! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2021-01-12
      • 2021-04-21
      • 1970-01-01
      • 2021-04-15
      • 1970-01-01
      相关资源
      最近更新 更多