VR Добавление Locomotion: Прогулка

Обновить

November 2018

Просмотры

43 раз

2

Использование Unity2017.3.1f1 Personal (64 бит), чтобы построить приложение VR для Android, с помощью Картонный VR SDK. Цель приложения, чтобы позволить пользователям визуализировать данные в захватывающем пути.

В настоящее время хочет, чтобы сделать что-то похожее на видовой, где можно двигаться вперед, туда, где один смотрит, но с одной кнопкой Картонной я просто хочу дать возможность двигаться вперед.

Строили Canvas, где пользователь может выбрать, какой тип локомоции он / она хочет: телепорт или ходить.

Телепорт работает отлично , как вы можете увидеть здесь .

Когда пользователь выбирает прогулку, следующее сообщение об ошибке показывает в консоли:

NullReferenceException: Ссылка на объект не указывает на экземпляр объекта

Player.TryWalk () (atAssets / Player.cs: 44)

Player.Update () (на активы / Player.cs: 37)

Мой сценарий игрока:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public enum InputMode
{
    NONE,
    TELEPORT,
    WALK
}

public class Player : MonoBehaviour {

    public static Player instance; //Singleton design pattern: only one instance of the class appears
    public InputMode activeMode = InputMode.NONE;

    [SerializeField]
    private float playerSpeed = 3.0f;

    void Awake()
    {
        if(instance != null)
        {
            GameObject.Destroy(instance.gameObject);
        }
        instance = this;
    }

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update ()
    {
        TryWalk();
    }

    public void TryWalk()
    {
        if(Input.GetMouseButton(0) && activeMode == InputMode.WALK)
        {
            Vector3 forward = Camera.main.transform.forward;

            Vector3 newPosition = transform.position + forward * Time.deltaTime * playerSpeed;

            transform.position = newPosition;
        }
    }
}

Сценарий игрока был добавлен в качестве компонента игрока:

иерархия

игрок

Когда кнопка Walk нажата, активные изменения режима в ХОДИТЬ, как вы можете видеть на следующем изображении. ходить

Тем не менее, даже если это произойдет, то пользователь не сможет ходить.

Что я могу сделать, чтобы решить эту проблему?

1 ответы

2

Camera.main; возвращается нуль.

Для того , чтобы исправить это, должен был иметь камеру в моей сцене помечено MainCameraкак вы можете видеть на следующем изображении.

камера

Посмотрите здесь работать.