2017-02-25 6 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입니다. 시작 방법에서 대문자 S를 사용해보십시오. 대소 문자를 구분하지는 못했지만 그 것처럼 보입니다. – Maakep

+0

그리고 그게 작동하지 않는다면,이 스크립트가 실제로이 스크립트에 SteamVR_TrackedObject를 가지고 있는지 확인하십시오. – Maakep

+0

ok, 저는 Strat mehod에서 대문자 S를 사용합니다. 고맙습니다! –

답변

0

먼저 당신은 당신의 화재 스크립트가 컨트롤러 객체에 부착하고 컨트롤러 객체가 (증기 플러그인에 의해 제공) SteamVR_TrackedObject 스크립트를 연결되어 있는지 확인해야한다. 그런 다음 마지막으로이 행이 실행 중인지 확인하십시오.

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