Объясните GvrPointerInputModule.pointer в следующем коде - PullRequest
0 голосов
/ 10 мая 2018

Я добавляю следующую строку кода в свой скрипт, чтобы включить поддержку контроллера для игры Unity VR, в которую играют в Google Daydream.Без этого кода контроллер не отображается в окончательной сборке игры

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
    }
}

Может кто-нибудь объяснить мне, почему мне нужно включить контроллер и контроллер во время игры, они не отключены в иерархии.И объясните 3-ю строку кода

1 Ответ

0 голосов
/ 10 мая 2018

Переменные controllerMain и controllerPointer являются просто ссылками на GvrControllerMain и GvrControllerPointer Префабы GameObject соответственно. GvrControllerPointer предоставляет встроенную лазерную указку, используемую для радиопередачи. GvrControllerMain требуется для использования контроллера Daydream.

Вызов controllerMain.SetActive(true) активирует GvrControllerMain. То же самое относится и к GvrControllerPointer, когда вы вызываете на нем вызов SetActive. Оба из них должны быть активированы при запуске Daydream. Вот почему их активация и деактивация происходит во время выполнения, потому что именно тогда вы можете определить, является ли это устройство для сна или нет.

GvrPointerInputModule.Pointer используется для установки типа указателя. Есть GvrLaserPointer и GvrReticlePointer. В вашем примере вы говорили модулю Gvr использовать GvrLaserPointer и это лазерный визуал, который помогает пользователям определять местоположение своего курсора, когда он не находится непосредственно в их поле зрения.

...