我有一些代码,当按下右手控制器的触发器时,它会开枪,但它似乎没有工作,我试图在实际的 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);
}
}
}
}