玩家不撞门进入下一关

时间:2019-07-12 23:00:00

标签: c# unity3d

我正在尝试使播放器能够走到2D门上,并通过按我设置的“使用”按钮与之互动,并在播放器与我制作的blackDoor碰撞时加载下一个级别,它不会显示我已设置的文本,也不会在按Use键时加载级别。

我试图完全移开使用键,以使播放器和门都发生碰撞,只加载关卡,这没用。

我做了一个Java脚本,也没有用。 我做了一个全新的关卡,将其放到levelToLoad上,没有用。 我删除了文本(以查看是否有帮助)。

using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;

public class OnTriggerEnter : MonoBehaviour
{
    public GameObject guiObject;
    public string levelToLoad;
    void Start()
    {
        guiObject.SetActive(false);
    }

    void OnTriggerStay(Collider other)
    {
        if (other.gameObject.tag == "Player")
        {
            guiObject.SetActive(true);
            if (guiObject.activeInHierarchy == true && Input.GetButtonDown("Use"))
            {
                SceneManager.LoadScene(levelToLoad);
            }
        }
    }

    void OnTriggerExit()
    {
        guiObject.SetActive(false);
    }
}

玩家应该定期走到门口,按使用键并加载下一个关卡。

1 个答案:

答案 0 :(得分:0)

如果您使用2D碰撞器进行交互。然后,当发生碰撞或触发时,您将使用错误的函数来获取回调。

您使用的是OnTriggerStay(Collider other)而不是OnTriggerStay2D(Collider2D other)

我还注意到您的类名也是OnTriggerEnter,我不知道是否允许使用Unity Callback函数名称作为类名,但是您可能也想更改它。