unity3d IF语句故障-使用触发器+输入更改场景

v1uwarro  于 2023-03-23  发布在  其他
关注(0)|答案(1)|浏览(123)

所以我花了几个小时的时间来编写这个脚本,这比我想的要长得多,因为我认为这个脚本很简单(虽然我过去有过一点编程经验)。我有一个带有触发器的场景,当我按下触发器时我希望它启用几个UI元素当你按下一个键时,它会把你送到另一个场景。它所做的是,当你按下分配给动作的键时,它会启用UI,但不会加载场景。
以下是脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class entryDining : MonoBehaviour
{
    public GameObject ThePlayer;
    public GameObject uiPanel;
    public GameObject textBox;
    public string actionText;
    public string scene;

    void OnTriggerEnter2D(Collider2D other)
    {
        textBox.GetComponent<Text>().text = actionText;
        uiPanel.SetActive (true);
        textBox.SetActive (true);
        if (Input.GetButtonDown("Action"))
        {
            SceneManager.LoadScene(scene);
        }
    }

    void OnTriggerExit2D()
    {
        uiPanel.SetActive(false);
    }
}

我已经删除了if语句,并离开了SceneManager,可以进入触发器,它会将我发送到我设置的场景,所以我已经将范围缩小到if语句没有按照我的意图工作。然而,在我试图让这个脚本发送给我的场景中,我使用了这个:

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

public class tempDining : MonoBehaviour
{
    public void Update()
    {
        if(Input.GetButtonDown("Action"))
        {
            SceneManager.LoadScene("entryWay");
        }
      
    }
}

我真的不知道我在这里做错了什么=/请帮助!

相关问题