gpt4 book ai didi

c# - Unity 中的相机 Controller

转载 作者:太空宇宙 更新时间:2023-11-03 20:56:52 25 4
gpt4 key购买 nike

有两个类似的脚本做同样的事情(相机跟随玩家)。第一个是我写的,第二个是来自统一教程。哪个更可靠,为什么?

第一

   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;
}

最佳答案

这两个脚本之间没有可靠性之类的东西。不过,我鼓励您使用第二个脚本。

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

第二个 脚本将摄像机的位置分配给玩家的位置和在start 函数 中获取的偏移值。游戏开始时,相机和玩家之间的偏移距离在 Start 函数中检索。在 LateUpdate 函数中,检索玩家的位置并向其添加偏移量,然后将其应用于相机的位置。


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

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

关于c# - Unity 中的相机 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49627565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com