0

我有一些代码,当按下右手控制器的触发器时,它会开枪,但它似乎没有工作,我试图在实际的 TriggerPressed 部分中添加一个调试,但这并没有当我在游戏中单击它时,它也不会出现在日志中,我只是不确定这个问题是从哪里开始的,我很困惑为什么它不起作用。它也可以编译,所以任何指导表示赞赏

编辑:不确定它的重要性,但还是决定添加它,我正在使用 oculus rift 控制器

这是(编辑:更新)代码:

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

public class adamadam : MonoBehaviour
{

public SteamVR_TrackedController controllerRight;

private SteamVR_TrackedObject trackedObj;
private SteamVR_Controller.Device device;

private SteamVR_TrackedController controller;

public EffectTracer TracerEffect;
public Transform muzzleTransform;

// Use this for initialization
void Start()
{

 //  controller = controllerRight.GetComponent<SteamVR_TrackedController>();
        controller.TriggerClicked += TriggerPressed;
      //  trackedObj = controllerRight.GetComponent<SteamVR_TrackedObject>();
}

private void TriggerPressed(object sender, ClickedEventArgs e)
{
    Debug.Log("Clicked");
    ShootWeapon();
}


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

    device = SteamVR_Controller.Input((int)trackedObj.index);
    device.TriggerHapticPulse(750);
    TracerEffect.ShowTracerEffect(muzzleTransform.position, 
muzzleTransform.forward, 250f);

    if (Physics.Raycast(ray, out hit, 5000f))
    {
        if (hit.collider.attachedRigidbody)
        {
            Debug.Log("Hit" + hit.collider.gameObject.name);
        }
    }

}



}
4

0 回答 0