2017-02-25 7 views
0

私はショット、 の例を作りたいが、私はハンドルボタンイベント、VR開発では、どのようにハンドルショットを作成できますか?

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がnullです。 Startメソッドで大文字のSを使用してみてください。大文字と小文字が区別されているかどうかはわかりませんが、そのように見えます。 – Maakep

+0

それがうまく動作しない場合は、このスクリプトが実際にSteamVR_TrackedObjectを持っていることを確認してください。 – Maakep

+0

OK、私はStrat mehodで大文字のSを使用します。 –

答えて

0

まずあなたがスクリプトがあなたのコントローラオブジェクトに接続して、コントローラオブジェクトも(蒸気プラグインによって提供)SteamVR_TrackedObjectスクリプトを装着されていることを確認する必要があるはずです。 次に、この行が最後に実行されていることを確認してください。

void start() { 
    trackedObj = GetComponent<SteamVR_TrakedObject>(); 
} 
関連する問題