我正在尝试使播放器能够走到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);
}
}
玩家应该定期走到门口,按使用键并加载下一个关卡。
答案 0 :(得分:0)
如果您使用2D碰撞器进行交互。然后,当发生碰撞或触发时,您将使用错误的函数来获取回调。
您使用的是OnTriggerStay(Collider other)
而不是OnTriggerStay2D(Collider2D other)
。
我还注意到您的类名也是OnTriggerEnter
,我不知道是否允许使用Unity Callback函数名称作为类名,但是您可能也想更改它。