使用Unity2017.3.1f1 Personal(64位)使用Cardboard VR SDK为Android构建VR应用程序。该应用程序的目的是允许用户以沉浸式方式可视化数据。
目前想要做一些类似于场景视图的事情,人们可以通过前往一个人的地方前进,但是使用Cardboard单按钮,我只能提供前进的能力。
建立一个画布,用户可以选择他/她想要的运动类型:传送或步行。
The teleport works fine as you can see here
当用户选择walk时,控制台中会显示以下错误:
NullReferenceException:Object 引用未设置为的实例 对象
Player.TryWalk()(atAssets / Player.cs:44)
Player.Update()(在Assets / 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;
}
}
}
播放器脚本已添加为播放器的组件:
尽管如此,即使发生这种情况,用户也无法行走。
我该怎么做才能解决这个问题?
答案 0 :(得分:2)