【问题标题】:Unity3D call function from another script (Unityscript)从另一个脚本 (Unityscript) 调用 Unity3D 函数
【发布时间】:2016-01-04 22:00:55
【问题描述】:

我查找了类似的问题和回复,但仍然无法使其正常工作。

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 () (在 资产/脚本/LessonRightButton.js:50)

我正在尝试从不同的脚本调用 woo 函数。 为了便于阅读,这些脚本被缩短了。请指教。

【问题讨论】:

    标签: unity3d unityscript


    【解决方案1】:

    您没有在该 AudioPlaybackButton 对象上附加任何 AudioPlayback。

    手动或代码添加一个:

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

    【讨论】:

    • 谢谢!弄乱你的解决方案,我意识到我设置了错误的游戏对象。我需要将它设置为的 GameObject 是“AudioPlayback”,它已经分配了一个 AudioSource,而不是“AudioPlaybackButton”:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    • 2017-11-09
    • 2012-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多