2017-02-25 56 views
0

我想要拍的一個例子, 後來我在手柄按鈕事件寫了這個,在虛擬現實開發中,我怎樣才能拍攝一個句柄?

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);, 錯誤是:

對象引用不設置爲一個對象的一個​​實例。

+2

trackedObj爲空。嘗試在Start方法中使用大寫字母S.不知道他們是否區分大小寫,但它看起來像。 – Maakep

+0

如果那沒有奏效,請確保這個腳本附加的對象實際上有SteamVR_TrackedObject – Maakep

+0

好的,我在我的Strat mehod中使用了大寫字母S,它可以工作,謝謝! –

回答

0

首先,你應該要確認您的腳本連接到您的控制器對象和控制器對象還附上SteamVR_TrackedObject腳本(通過蒸汽插件提供)。 然後,最後確保此行正在執行

void start() { 
    trackedObj = GetComponent<SteamVR_TrakedObject>(); 
}