0

我想做一个镜头的例子,然后在手柄按钮事件中写了这个,</p>

using UnityEngine;
using System.Collections;

public class fire : MonoBehaviour {
public GameObject bullet;

SteamVR_TrackedObject trackedObj;
void start() {
    trackedObj = GetComponent<SteamVR_TrakedObject>();
}
void Update() {
    var device = SteamVR_Controller.Input((int)trackedObj.index);
    if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Trigger)) {
        GameObejct obj = Instantiate(bullet,transform.position);
        Vector3d fwd = transform.TransformDirection(Vector3.forward);
        obj.GetComponent.<Rigidbody>().AddForce(fwd*2800);
    }
}
}

但是在调试时,我按下手柄按钮,它没有产生子弹,并且在线路上出错了
var device = SteamVR_Controller.Input((int)trackedObj.index);,错误是:

你调用的对象是空的。

4

1 回答 1

0

首先,您需要确认您的fire脚本已附加到您的控制器对象,并且您的控制器对象还附加了 SteamVR_TrackedObject脚本(由 steam 插件提供)。然后,最后确保这条线正在执行

void start() {
    trackedObj = GetComponent<SteamVR_TrakedObject>();
}
于 2017-03-04T07:43:48.723 回答