gpt4 book ai didi

c# - VR 添加运动 : Walk

转载 作者:行者123 更新时间:2023-11-30 15:55:01 26 4
gpt4 key购买 nike

使用 Unity2017.3.1f1 Personal(64 位)为 Android 构建 VR 应用程序,使用 Cardboard VR SDK。该应用的目的是让用户以身临其境的方式可视化数据。

目前我想做一些类似于场景 View 的事情,在场景 View 中,人们可以通过走到他正在看的地方向前移动,但我只想通过 Cardboard 单个按钮提供向前移动的能力。

构建了一个 Canvas ,用户可以在其中选择他/她想要的运动类型:传送或步行。

The teleport works fine as you can see here .

当用户选择步行时,控制台中显示以下错误:

NullReferenceException: Object reference not set to an instance of an object

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

Player.Update () (at 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;
}
}
}

Player 脚本被添加为 Player 的组件:

hierarchy

player

当按下步行按钮时,事件模式变为步行,如下图所示。 walk

尽管如此,用户仍无法行走。

我该怎么做才能解决这个问题?

最佳答案

Camera.main; 返回 null。

为了修复它,必须将场景中的相机标记为 MainCamera,如下图所示。

camera

See it working here.

关于c# - VR 添加运动 : Walk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49149424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com