我想在Unity制作一部电影,所以我需要几台摄像机和摄像机路径。 在这个偏离的过程中,我想在它们之间进行更改。例如,如果Camerapath1与Camera1达到一个重要点,那么我想用Camera2等更改为Camerapath2。
我还安装了Camera Path Animator资产。当我使用它只有一个摄像头用于几个摄像头路径时,它工作得很好但是我无法在主摄像机之间进行更改。
我是Unity的新手。我也知道我应该这样做:
...
camera1.camera.active = false;
camera2.camera.active = true;
...
...但我应该在哪里填充这些行?最重要的是,当特定摄像机路径上的摄像机到达特定点时,如何捕捉事件?
答案 0 :(得分:1)
要走的路是一个动画控制器,它将所有相机都作为孩子,并控制所有相机的活动状态。这提供了对行为的完美控制。
创建一个空的游戏对象,将所有摄像机添加为子对象,使用一个动画将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开始下一步。