这是一个简单的VR应用程序,可以查看360度照片。我有下一张和上一张照片的UI按钮。我想要的是,当一个人以360度左右的任何角度观看照片时,如果他看到下方,他应该获得这些UI按钮。
我尝试使用Quaternion.RotateTowards
,Quaternion.Slerp
,Quaternion.SlerpUnclamped
使用相机旋转这些UI按钮,但结果与我们在类似的VR应用程序中看到的结果不同。
我正在使用GoogleVR sdk。请帮助。
在屏幕截图中,场景处于播放模式。查看相机的旋转。最初是在(0,0,0),但我正在观察下面是更新的轮换。你可以看到画布上用户界面的圆形蓝色按钮。
我想要的是,当我环顾四周时,这些按钮应保持在下方。换句话说,每当我看到下方时,我都会看到这些按钮。事实上,我可以四处走动,但每当我看到下面,我就会看到我的鞋子。https://i.stack.imgur.com/Z1Fvz.jpg 第二张图片: https://i.stack.imgur.com/jLKmp.jpg
答案 0 :(得分:0)
我认为你的场景中有一个屏幕空间画布。将其更改为世界空间(在“画布”对象上,将“渲染模式”更改为“世界空间”),然后将其放置在相机下方。它将出现在下面。如果您移动相机,则需要更新画布以保持相机。这个脚本将为您完成:
Transform cameraTransform; // find the camera transform in some way at startup, it depends on your scene setup
void Update() {
transform.position = cameraTransform.position + Vector3.down * 5; // change 5 to whatever distance you want the canvas to sit from the camera
transform.rotation = Quaternion.Euler(90 /* face-up */, 0, -cameraTransform.rotation.y /* rotate to match heading of camera */);
}