C# 统一摄像机控制器

C# 统一摄像机控制器,c#,unity3d,C#,Unity3d,有两个类似的脚本可以制作相同的东西摄影机正在跟踪玩家。第一个是我写的,第二个是unity教程。哪一个更可靠,为什么 第一 第二 我敢打赌第二个更可靠,因为它没有任何硬编码变量。但是它对程序员和非程序员也很容易使用,因为它根据您在场景中设置的位置计算您希望在任何方向上给出的偏移量。我敢打赌,第二个更可靠,因为它没有任何硬编码变量。但是它对程序员和非程序员来说也很容易使用,因为它根据您在场景中设置的位置来计算您想要在任何方向上给出的偏移量。这两个脚本之间没有可靠性。尽管如此,我还是鼓励您使用第二个脚

有两个类似的脚本可以制作相同的东西摄影机正在跟踪玩家。第一个是我写的,第二个是unity教程。哪一个更可靠,为什么

第一

第二


我敢打赌第二个更可靠,因为它没有任何硬编码变量。但是它对程序员和非程序员也很容易使用,因为它根据您在场景中设置的位置计算您希望在任何方向上给出的偏移量。

我敢打赌,第二个更可靠,因为它没有任何硬编码变量。但是它对程序员和非程序员来说也很容易使用,因为它根据您在场景中设置的位置来计算您想要在任何方向上给出的偏移量。

这两个脚本之间没有可靠性。尽管如此,我还是鼓励您使用第二个脚本

第一个脚本是将摄影机的位置指定给播放器的位置。它唯一没有指定的是硬编码为-10的z轴。游戏开始时,摄像机将移动到玩家所在的位置。相机的z轴将设置为-10。这种情况在每次更新延迟时都会发生

第二个脚本是使用“开始”函数中的播放机位置和偏移值指定摄影机的位置。游戏开始时,相机和玩家之间的偏移距离在开始功能中检索。在LateUpdate功能中,将检索播放器的位置,并将偏移添加到该位置,然后应用到相机的位置

第一个脚本的结果是,摄影机将始终位于玩家所在的位置,但z轴将始终设置为-10。我确信您不希望z轴不移动


第二个脚本的结果是,摄影机与播放器之间的距离始终相同。即使从编辑器中移动相机或玩家,第二个脚本也会自动调整位置,并确保游戏开始前相机和玩家之间的距离始终相同。我相信这就是你想要的,但我不认为这是可靠的。第一个代码根本不适合您正在做的事情,第二个代码是。

两个脚本之间没有可靠性。尽管如此,我还是鼓励您使用第二个脚本

第一个脚本是将摄影机的位置指定给播放器的位置。它唯一没有指定的是硬编码为-10的z轴。游戏开始时,摄像机将移动到玩家所在的位置。相机的z轴将设置为-10。这种情况在每次更新延迟时都会发生

第二个脚本是使用“开始”函数中的播放机位置和偏移值指定摄影机的位置。游戏开始时,相机和玩家之间的偏移距离在开始功能中检索。在LateUpdate功能中,将检索播放器的位置,并将偏移添加到该位置,然后应用到相机的位置

第一个脚本的结果是,摄影机将始终位于玩家所在的位置,但z轴将始终设置为-10。我确信您不希望z轴不移动


第二个脚本的结果是,摄影机与播放器之间的距离始终相同。即使从编辑器中移动相机或玩家,第二个脚本也会自动调整位置,并确保游戏开始前相机和玩家之间的距离始终相同。我相信这就是你想要的,但我不认为这是可靠的。第一个代码根本不适合您正在做的事情,第二个代码是。

就像您的其他问题一样,这是C而不是unityscript。这样说是为了让你在问下一个问题时理解。就像你的其他问题一样,这不是unityscript。这样说是为了让你在问下一个问题时理解。这是2D游戏,所以我写了-10到z轴,这很有意义,因为它是2D的。这段代码最初来自Unity的滚球游戏教程,它是3D的,所以我的答案是基于3D的。除z轴外,我所说的其他一切都是正确的,这里不重要。您需要x和y值的偏移量,所以第二个代码也是来自UFO 2D教程!是的,它也在2D教程中。虽然它最初是为3D滚球游戏制作的,但是他们在2D教程中再次使用了它。刚刚检查了每个教程的时间线,再次验证了这一点。这是2D游戏,所以我在z轴上写了-10,这是有意义的,因为它是2D。这段代码最初来自Unity的滚球游戏教程,它是3D的,所以我的答案是基于3D的。除z轴外,我所说的其他一切都是正确的,这里不重要。你需要偏移量f
或者x和y值,所以第二个代码也是来自UFO 2D教程!是的,它也在2D教程中。虽然它最初是为3D滚球游戏制作的,但是他们在2D教程中再次使用了它。只是检查了每个教程的时间线,以再次验证这一点。
   public class CameraController : MonoBehaviour {

   public GameObject player;

   void LateUpdate () {

    transform.position = new Vector3 (player.transform.position.x,  player.transform.position.y,-10f);

   }
   }
    public GameObject player;       

    private Vector3 offset;

    void Start () 
    {
    offset = transform.position - player.transform.position;
    }

    void LateUpdate () 
    {

    transform.position = player.transform.position + offset;
    }