2016-01-04 281 views
0

我查了類似的問題和反應,仍然沒有能夠得到這個工作。Unity3D從另一個腳本(Unity腳本)調用函數

LessonRightButton.js

//#pragma strict 
public var audio1 : AudioPlayback; 

function OnClick(){ 
     var findAudioSource = GameObject.Find("AudioPlaybackButton"); 
     var audio1:AudioPlayback = findAudioSource.GetComponent(AudioPlayback); 
     audio1.woo(); // THIS IS LINE 50 IN THE ERROR 
} 

AudioPlayback.js

//#pragma strict 

function woo(){ 
    Debug.Log("wooooooooooooooo"); 
} 

我得到這個錯誤:

NullReferenceException: Object reference not set to an instance of an object LessonRightButton.OnClick() (at Assets/Scripts/LessonRightButton.js:50)

我試圖從不同的腳本調用宇功能。 爲了便於閱讀,縮短了這些腳本。請指教。

回答

0

您沒有在該AudioPlaybackButton對象上附加AudioPlayback。

手動或通過代碼添加一個:

function OnClick(){ 
     var findAudioSource = GameObject.Find("AudioPlaybackButton"); 
     var audio1:AudioPlayback = findAudioSource.GetComponent(AudioPlayback); 
     if(audio1 == null){ 
      audio1 = findAudioSource.AddComponent(AudioPlayback); 
     } 
     audio1.woo();  
} 
+1

謝謝!想想你的解決方案,我意識到我設置了錯誤的GameObject。我需要設置的GameObject是「AudioPlayback」,它已經有一個AudioSource分配給它,而不是「AudioPlaybackButton」:-) – wsgb

相關問題