Game视图同步Scene视图比较容易,直接获取Scene的摄像机坐标和旋转然后同步给Camera就可以。但是我想做的是Game视图运行时修改摄像机的位置,Scene视图来同步。
SceneView.lastActiveSceneView.camera.transform.postion
Unity给的一个解决方案是SceneView.AlignViewToObject但是会有延迟,无法做到每帧同步,后来翻了一下C#部分的代码,算是完美解决了。
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程序研究院 发表
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!

