无论在场景中的位置如何,Unity 相机在启动时始终位于原点
Unity camera always at origin at startup regardless of position in scene
所以我想在我的场景中编辑相机的起始高度,并尝试将相机向上移动一点。什么都没发生。还测试了它购买大量向上移动相机,我是否正确假设相机总是 'spawns'/'initiates' 在 (0,0,0),从不使用它在场景中的位置.
如果这个假设是正确的,我怎样才能让相机在屏幕中的相机位置启动。我真的不想移动整个场景来重新定位相机。
您可以创建一个简单的脚本,在 start() 方法中设置相机的位置:
void Start()
{
transform.position += new Vector(0, 100f, 0);
}
然后只需将脚本附加到您的相机
我认为有两种解决方案(专门针对 TangoUnitySDK):
您可以修改 PoseController.cs。例如,示例代码中的 here,您可以添加一个偏移向量。
使用 DeltaPoseController 预制件代替 PoseController。 DeltaPoseController 会保持初始位置作为起点,所以你可以把它放在你想要应用程序开始的地方。
我自己想出来了。希望对你有帮助!
newPose = new Vector3(0,10,0);
yourTangoCamera.GetComponent<TangoDeltaPoseController> ().SetPose (newPose,yourTangoCamera.transform.rotation);
在此处阅读有关 SetPose 的更多信息:
https://developers.google.com/tango/apis/unity/reference/class/tango-delta-pose-controller#class_tango_delta_pose_controller_1a19c0ea02c4c538ffcf7cdc3423b222b8
所以我想在我的场景中编辑相机的起始高度,并尝试将相机向上移动一点。什么都没发生。还测试了它购买大量向上移动相机,我是否正确假设相机总是 'spawns'/'initiates' 在 (0,0,0),从不使用它在场景中的位置.
如果这个假设是正确的,我怎样才能让相机在屏幕中的相机位置启动。我真的不想移动整个场景来重新定位相机。
您可以创建一个简单的脚本,在 start() 方法中设置相机的位置:
void Start()
{
transform.position += new Vector(0, 100f, 0);
}
然后只需将脚本附加到您的相机
我认为有两种解决方案(专门针对 TangoUnitySDK):
您可以修改 PoseController.cs。例如,示例代码中的 here,您可以添加一个偏移向量。
使用 DeltaPoseController 预制件代替 PoseController。 DeltaPoseController 会保持初始位置作为起点,所以你可以把它放在你想要应用程序开始的地方。
我自己想出来了。希望对你有帮助!
newPose = new Vector3(0,10,0);
yourTangoCamera.GetComponent<TangoDeltaPoseController> ().SetPose (newPose,yourTangoCamera.transform.rotation);
在此处阅读有关 SetPose 的更多信息: https://developers.google.com/tango/apis/unity/reference/class/tango-delta-pose-controller#class_tango_delta_pose_controller_1a19c0ea02c4c538ffcf7cdc3423b222b8