【问题标题】:Unity camera always at origin at startup regardless of position in scene无论场景中的位置如何,Unity 相机在启动时始终位于原点
【发布时间】:2015-09-11 09:55:33
【问题描述】:

所以我想在我的场景中编辑相机的起始高度并尝试将相机向上移动一点。没啥事儿。还测试了它购买大量移动相机,我是否正确假设相机总是在(0,0,0)“生成”/“启动”,从不使用它在场景中的位置。

如果这个假设是正确的,我怎么可能让相机在屏幕中的相机位置启动。我真的不想移动整个场景来重新定位相机。

【问题讨论】:

    标签: unity3d 3d camera google-project-tango


    【解决方案1】:

    我认为有两种解决方案(特别是针对 TangoUnitySDK):

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

    2. 使用 DeltaPoseController 预制件代替 PoseController。 DeltaPoseController 会保持初始位置作为起点,所以你可以把它放在你希望应用程序开始的地方。

    【讨论】:

      【解决方案2】:

      您可以创建一个简单的脚本,在 start() 方法中设置相机的位置:

      void Start()
      {
           transform.position += new Vector(0, 100f, 0);
      }
      

      然后将脚本附加到您的相机

      【讨论】:

      • 这个修改不会被探戈覆盖,这和在场景编辑器中移动相机不完全一样。我会试试看。
      【解决方案3】:

      只是我自己想出来的。希望对您有所帮助!

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多