如何根据相机坐标更改Unity中的相机?
How to change cameras in Unity based on camera coordinates?
我想在 Unity 中制作电影,因此我需要多个摄像机和摄像机路径。
最重要的是,我想在它们之间进行更改。例如,如果 Camerapath1 到达 Camera1 的重要点,那么我想更改为 Camerapath2 和 Camera2,等等。
我还安装了 Camera Path Animator 资产。当我仅将一个相机用于多个相机路径但我无法在主相机之间切换时,它工作得很好。
我是 Unity 的新手。我也知道我应该这样做:
...
camera1.camera.active = false;
camera2.camera.active = true;
...
...但是我应该在哪里填充这些行?最重要的是,当特定相机路径上的相机到达特定点时,我如何捕捉事件?
要走的路是一个动画控制器,它将所有摄像机作为子级并控制所有摄像机的活动状态。这提供了对行为的完美控制。
创建一个空的游戏对象,将所有摄像机添加为子对象,为具有一个动画的主对象添加一个 Animator。此动画使用所有相机并设置它们的活动状态。这种方法的一个额外好处是可以使用 AnimationEvent 进程调用方法。您仍然可以在动画中定义一些触发动作,例如爆炸或物体移动。
正如我所说,这给了你完美的控制,因为你可以在特定时间轻松定义动作。
它的缺点是过程的刚性。它可能不像代码那么灵活,但既然你是在拍电影,你可能不需要灵活性。
如果是这样,您的相机将配备对撞机和刚体(isKinematic true),然后您将拥有一些带有简单脚本的触发框:
public void CameraTrigger:MonoBehaviour{
public GameObject nextCamera;
void OnTriggerEnter(Collider col){
if(col.gameObject.CompareTag("Camera")){
col.gameObject.SetActive(false);
nextCamera.SetActive(true);
}
}
}
然后将要开始的相机拖到 nextCamera。
我想在 Unity 中制作电影,因此我需要多个摄像机和摄像机路径。 最重要的是,我想在它们之间进行更改。例如,如果 Camerapath1 到达 Camera1 的重要点,那么我想更改为 Camerapath2 和 Camera2,等等。
我还安装了 Camera Path Animator 资产。当我仅将一个相机用于多个相机路径但我无法在主相机之间切换时,它工作得很好。
我是 Unity 的新手。我也知道我应该这样做:
...
camera1.camera.active = false;
camera2.camera.active = true;
...
...但是我应该在哪里填充这些行?最重要的是,当特定相机路径上的相机到达特定点时,我如何捕捉事件?
要走的路是一个动画控制器,它将所有摄像机作为子级并控制所有摄像机的活动状态。这提供了对行为的完美控制。
创建一个空的游戏对象,将所有摄像机添加为子对象,为具有一个动画的主对象添加一个 Animator。此动画使用所有相机并设置它们的活动状态。这种方法的一个额外好处是可以使用 AnimationEvent 进程调用方法。您仍然可以在动画中定义一些触发动作,例如爆炸或物体移动。
正如我所说,这给了你完美的控制,因为你可以在特定时间轻松定义动作。
它的缺点是过程的刚性。它可能不像代码那么灵活,但既然你是在拍电影,你可能不需要灵活性。
如果是这样,您的相机将配备对撞机和刚体(isKinematic true),然后您将拥有一些带有简单脚本的触发框:
public void CameraTrigger:MonoBehaviour{
public GameObject nextCamera;
void OnTriggerEnter(Collider col){
if(col.gameObject.CompareTag("Camera")){
col.gameObject.SetActive(false);
nextCamera.SetActive(true);
}
}
}
然后将要开始的相机拖到 nextCamera。