无论在场景中的位置如何,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):

  1. 您可以修改 PoseController.cs。例如,示例代码中的 here,您可以添加一个偏移向量。

  2. 使用 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