我正在做一个Google Cardboard项目,现在我有一个Android演示,您可以在我用UNITY 3D构建的特殊场景中环顾四周,一切正常,看起来不错,但是我真正想要的是:
当我按下Google Cardboard磁铁按钮时,我想向前走。
我在网上找到了一些脚本,但是我不知道如何在UNITY项目中使这些脚本正常工作。
有人可以帮我进一步吗?
最佳答案
假设您能够正确读取磁铁输入。这是我做FPS样式控制器脚本的方式:
在Unity5中,导入资产包“标准资产/字符”。
从该程序包创建RigidBodyFPSController.prefab的实例。
删除它的子对象“ MainCamera”
导入Google cardboard unitypackage。
用CardboardMain.prefab替换在步骤3中删除的“ MainCamera”
更新或修改RigidbodyFirstPersonController.cs GetInput()方法的副本。
带有Google Cardboard前退后退的GetInput():
private Vector2 GetInput()
{
Vector2 input = new Vector2
{
x = Input.GetAxis("Horizontal"),
y = Input.GetAxis("Vertical")
};
// If GetAxis are empty, try alternate input methods.
if (Math.Abs(input.x) + Math.Abs(input.y) < 2 * float.Epsilon)
{
if (IsMoving) //IsMoving is the flag for forward movement. This is the bool that would be toggled by a click of the Google cardboard magnet
{
input = new Vector2(0, 1); // go straight forward by setting positive Vertical
}
}
movementSettings.UpdateDesiredTargetSpeed(input);
return input;
}
Google的SDK仅支持检测磁铁的“喀哒”声。如果您想按住磁铁前进,则建议使用Unity3D资产存储中的Cardboard Controls+。
关于android - UNITY 3D的磁铁脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26928904/