声明了本地函数“ OnTriggerEnter2D”,但从未使用过

时间:2019-07-09 18:34:20

标签: c# unity3d

我不知道如何解决它。这是一个2D游戏。当您与该框碰撞时,它应该将您加载/传送到下一个场景,但是不会。

我尝试了互联网上的所有内容,但没有成功。

using UnityEngine;
using UnityEngine.SceneManagement;

public class VictoryZone : MonoBehaviour 
{        
    public void LoadNextLevel() 
    {
        void OnTriggerEnter2D(Collider2D collider)
        {   
            SceneManager.LoadScene(1);
        }
    }
}

我希望它能将我传送到下一个层次。

1 个答案:

答案 0 :(得分:3)

好像您将OnTriggerEnter2D()函数嵌套在LoadNextLevel()内?这就是Local Function警告所指的。

这些应该是两个独立的功能,而不是一个在另一个内。 OnTriggerEnter2D()是MonoBehavior的功能;发生碰撞的是MonoBehavior(VictoryZone)。

using UnityEngine.SceneManagement;

public class VictoryZone : MonoBehaviour {

    public void LoadNextLevel() {
        SceneManager.LoadScene(1);
    }

    void OnTriggerEnter2D(Collider2D collider) {
        LoadNextLevel();
    }

}

注意:您可能还需要检查与collider关联的GameObject,以确保它是玩家,而不是敌人或其他东西(假设您有敌人或射弹或其他物体,且撞机在移动)进入胜利区。