我在我的脚本中添加了以下代码行,以便为在google 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行代码
答案 0 :(得分:0)
controllerMain
和controllerPointer
变量分别只是对GvrControllerMain和GvrControllerPointer GameObject预制件的引用。 GvrControllerPointer提供用于光线投射的内置激光指示器。 GvrControllerMain需要使用Daydream控制器。
致电controllerMain.SetActive(true)
将激活GvrControllerMain
。当你在它上面调用SetActive
时,同样适用于GvrControllerPointer。运行白日梦时应该激活这两个。这就是为什么在运行期间激活和去激活它们的原因,因为这样可以确定这是否是白日梦设备。
GvrPointerInputModule.Pointer
用于设置指针类型。有一个GvrLaserPointer
和GvrReticlePointer
。在您的示例中,您告诉Gvr模块使用GvrLaserPointer
并且是激光视觉效果,可以帮助用户在不直接位于视野范围内时找到光标。