【问题标题】:Make object appear right in front of camera OCULUS使物体出现在相机 OCULUS 的正前方
【发布时间】:2015-03-08 19:17:35
【问题描述】:

我正在使用 C# 为 Oculus VR 制作 Unity 游戏。

我想测试一个简单的跳跃惊吓,物体突然出现在你的“脸上”。

我在设置此对象的位置时遇到问题。现在我将玩家的位置和轮换传递给这个函数。

public void ScareMe(Vector3 pos, Quaternion rot){
    girlSmiling.transform.position = new Vector3(pos.x, 0.9f, pos.z-    1.3f);
    //girlSmiling.transform.LookAt (pos);
    girlSmiling.transform.rotation = rot;
   //other irrelevant stuff
}

我需要为我的恐惧(女孩)保持 y 位置,因为在 Oculus 中你的高度是可调节的,它与你的环境不对应,所以我需要将它保持在 0.9f。 我尝试了 LookAt 功能,但效果不如我想的那么好。

问题是那个女孩只有在我直视的时候才会出现在我面前。当我移动我的头时,这更可能是 Oculus 在游戏中的真实情况,她看起来有点向右或向左甚至在后面。

我不明白为什么会这样。我怎样才能设置她的位置,让她总是在我面前面对我?

【问题讨论】:

    标签: c# unity3d rotation position oculus


    【解决方案1】:

    你总是可以试着让你的吓唬女孩成为你的摄像头对象的孩子。这样做,对象将跟随摄像头并随之旋转。

    girlSmiling.transform.parent = ...Here you can put the transform of the Camera head.
    

    您可以在养育对象之前或养育对象之后定位对象(使用本地位置应该更容易)。

    我希望这会有所帮助,祝你好运!

    【讨论】:

    • 它不起作用:(我将父级设置为相机变换,但女孩现在甚至没有出现。我试图在设置父级之前设置她的位置,但她仍然没有' t 出现。
    • 好的,试试这个: 1 - 将对象设为相机的子对象 2 - 将微笑女孩的 LOCAL 位置设置为相机的前方位置。这段代码:transform.parent = Camera.main.transform; // 或者你的相机对象// transform.localPosition = Camera.main.transform.forward;更改后,如果您无法在相机中看到物体,请检查相机的 NEAR 值并使其变小。
    • @Romaldowoho 对 z-index 取反,我永远不会期望能够看到附加到孩子头部对象的对象。 pos.z-1.3f 线会将女孩连接到你的后脑勺,因此当你在 VR 中转身时,你永远看不到她:(
    猜你喜欢
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 2019-10-23
    • 2019-10-07
    • 2019-04-02
    • 2012-08-10
    • 2014-12-02
    • 1970-01-01
    相关资源
    最近更新 更多