0
私はSteamVRとVRTKでUnityで銃を作りようとしていますが、コントローラの入力を正しく取得する方法を理解できません。 SteamVR追跡コントローラスクリプトを使用すると、IsMatrixValidエラーが発生し、HMDが壊れてしまいます。私は現在、VRTKコントローラのイベントメソッドを使用しようとしていますが、ビデオを正しく追跡しても、nullとして返され続けます。VRTK_ControllerEvents nullを返す
Screenshot of script location in project
問題のビデオ: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("workfuck");
}
}
// 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");
}
}
}
「retur ning null "が起こっていますか? – Programmer