从静态函数访问非静态函数

时间:2015-03-07 18:09:12

标签: unity3d unityscript

以下是一些见解:我在Unity 4.6.3中使用UnityScript。我有一个名为Pause.js的脚本,它包含这个函数:

function fadeMusicOut () {
    while (audio.volume >= 0.005) {
    yield WaitForSeconds(0.1);
    Debug.Log("Loop Entered: " + audio.volume);
    audio.volume = (audio.volume - 0.015);
}

另一个脚本GameManager.js具有此功能:

static function Score (wallName : String) {
    if (wallName == "rightWall") {
        playerScore01 += 1;
    }
    else {
        playerScore02 += 1;
    }
    if (playerScore01 == SettingsBack.scoreLimit || playerScore02 == SettingsBack.scoreLimit)
    {
        startParticles = 1;
        SettingsBack.gameOver = 1;
        BallControl.fadeSound = 1;
        yield WaitForSeconds(4);
        Camera.main.SendMessage("fadeOut");
        Pause.fadeMusic = 1;
        SettingsBack.soundVolume = 0;
        yield WaitForSeconds(2);
        playerScore01 = 0;
        playerScore02 = 0;
        SettingsBack.soundVolume = oldSoundVol;
        Application.LoadLevel("_Menu");
    }
}

所以我想从fadeMusicOut()调用static function Score函数,但它不会让我,因为它说它需要该对象的实例。

Pause.js脚本未附加到任何游戏对象,但它附加到2个调用其特定功能的按钮。 GameManager.js脚本附加到名为GM的对象。那么我怎样才能从乐谱功能中调用fadeMusicOut()

我尝试设置导入游戏对象的新变量,但仍然没有运气。我尝试将fadeMusicOut()作为静态函数,但它会产生许多错误。

任何帮助都表示赞赏。

0 个答案:

没有答案