我正在尝试为 Android 设备修改 Unity3d(版本 4.6.4f1)中的 Google Cardboard SDK 演示。
以下描述基于我正在尝试完成的这张图片。
- 在游戏开始时,一个静止的红色立方体将位于视野中心。
- 用户可以 360 度环顾四周,例如他/她抬起头来查看云。
- 当用户双击触摸屏时,红色立方体将传送到面向用户的新视野中心。
谢谢!
我正在尝试为 Android 设备修改 Unity3d(版本 4.6.4f1)中的 Google Cardboard SDK 演示。
以下描述基于我正在尝试完成的这张图片。
谢谢!
这是一种方法,使用返回 Ray 的 CardboardHead 的 Gaze 属性:
// Places the game object at distance meters from the user, in the
// direction they are looking.
public void MoveToView(float distance)
{
CardboardHead head = Camera.main.GetComponent<StereoController>().Head;
transform.position = head.Gaze.GetPoint(distance);
}
(假设主摄像机上有一个 StereoController。如果情况并非如此,您可以检查 null。)
您需要使用CardboardMain
预制件的 CardboardHead 部分。在您的多维数据集脚本中,留下一个公共 GameObject 引用并将其设置为CardboardHead
在编辑器中。
接下来,在您的双击处理函数中,根据头部的前向矢量设置您的位置。
如果您希望立方体(或任何其他 3D 对象)面向玩家,您需要使用transform.LookAt()
它可能看起来像这样:
public GameObject cardboardHead;
public float distanceFromCamera;
public void doubleTapped()
{
Vector3 newPosition = cardboardHead.transform.position + (cardboardHead.transform.forward * distanceFromCamera);
transform.position = newPosition;
transform.LookAt(cardboardHead.transform);
}