来自另一个脚本的Unity3D调用函数(Unityscript)

时间:2016-01-04 22:00:55

标签: unity3d unityscript

我已经查找了类似的问题和回复,仍然无法使其发挥作用。

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:未将对象引用设置为的实例   对象LessonRightButton.OnClick()(at   资产/脚本/ LessonRightButton.js:50)

我正试图从另一个脚本调用woo函数。 缩短这些脚本是为了便于阅读。请指教。

1 个答案:

答案 0 :(得分: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();    
}