在下面的代码

时间:2018-05-10 10:12:36

标签: c# unity3d daydream

我在我的脚本中添加了以下代码行,以便为在go​​ogle daydream中播放的Unity VR游戏启用控制器支持。没有此代码,控制器不会显示在游戏的最终版本中

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class InputManager : MonoBehaviour
{
    public GameObject controllerMain;
    public GameObject controllerPointer;
    private void Start()
    {   
    controllerMain.SetActive(true);
    controllerPointer.SetActive(true);
    GvrPointerInputModule.Pointer = 
    controllerPointer.GetComponentInChildren<GvrLaserPointer>();//3
    }
}

有人可以解释为什么我需要在gamelay期间启用控制器主控制器和控制器,而不是在层次结构中禁用它们。 并解释第3行代码

1 个答案:

答案 0 :(得分:0)

controllerMaincontrollerPointer变量分别只是对GvrControllerMainGvrControllerPointer GameObject预制件的引用。 GvrControllerPointer提供用于光线投射的内置激光指示器。 GvrControllerMain需要使用Daydream控制器。

致电controllerMain.SetActive(true)将激活GvrControllerMain。当你在它上面调用SetActive时,同样适用于GvrControllerPointer。运行白日梦时应该激活这两个。这就是为什么在运行期间激活和去激活它们的原因,因为这样可以确定这是否是白日梦设备。

GvrPointerInputModule.Pointer用于设置指针类型。有一个GvrLaserPointerGvrReticlePointer。在您的示例中,您告诉Gvr模块使用GvrLaserPointer并且是激光视觉效果,可以帮助用户在不直接位于视野范围内时找到光标。