0

我正在尝试使用 SteamVR 和 VRTK 在 Unity 中制作枪,但我不知道如何正确获取控制器输入。当我使用 SteamVR Tracked Controller 脚本时,我得到一个 IsMatrixValid 错误,它弄乱了我的 HMD。我目前正在尝试使用 VRTK 控制器事件方法,但即使我正确地跟随了视频,它也会一直返回为空。

项目中脚本位置截图

有问题的视频:https ://www.youtube.com/watch?v= escwjnHFce0 (14:17)

有问题的脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using EZEffects;
using VRTK;


public class GunBehavior : MonoBehaviour {

public VRTK_ControllerEvents controllerEvents;

private SteamVR_TrackedObject trackedObj;


public EffectTracer TracerEffect;
public Transform muzzleTransform;

// Use this for initialization
void Start () {
    Debug.Log(controllerEvents);
    if (controllerEvents)
    {
        Debug.Log("Hue22");
    }
    else
    {
        Debug.Log("work");
    }
}

// Update is called once per frame
void Update () {

    if (controllerEvents.triggerPressed)
    {
        ShootWeapon();
    }
}

void TriggerPressed(object sender, VRTK.ControllerInteractionEventArgs e)
{
    ShootWeapon();
}

void ShootWeapon()
{
    RaycastHit hit = new RaycastHit();
    Ray ray = new Ray(muzzleTransform.position, muzzleTransform.forward);

    TracerEffect.ShowTracerEffect(muzzleTransform.position, muzzleTransform.forward, 250f);

    if (Physics.Raycast(ray, out hit, 5000f))
    {
        Debug.Log("Hueheuhue");
    }
}
}
4

1 回答 1

0

从您的脚本中删除这 3 行代码,它应该可以工作

void TriggerPressed(object sender, VRTK.ControllerInteractionEventArgs e)
{
    ShootWeapon();
}
于 2017-10-24T18:51:07.307 回答