Game视图同步Scene视图比较容易,直接获取Scene的摄像机坐标和旋转然后同步给Camera就可以。但是我想做的是Game视图运行时修改摄像机的位置,Scene视图来同步。
1 2 3 |
SceneView.lastActiveSceneView.camera.transform.postion |
Unity给的一个解决方案是SceneView.AlignViewToObject但是会有延迟,无法做到每帧同步,后来翻了一下C#部分的代码,算是完美解决了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
private void Update() { Camera cameraMain = Camera.main; var sceneView = SceneView.lastActiveSceneView; if (sceneView != null) { sceneView.cameraSettings.nearClip = cameraMain.nearClipPlane; sceneView.cameraSettings.fieldOfView = cameraMain.fieldOfView; sceneView.pivot = cameraMain.transform.position + cameraMain.transform.forward * sceneView.cameraDistance; sceneView.rotation = cameraMain.transform.rotation; } } |
- 本文固定链接: https://www.xuanyusong.com/archives/4800
- 转载请注明: 雨松MOMO 于 雨松MOMO程序研究院 发表
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!