我想根据游戏对象的标签使用 2D 盒子碰撞器(如关卡加载器)加载不同的统一场景。我有 4 个“门”(带有对撞机的游戏对象),顶部为顶部,底部为底部,左侧为左侧,右侧为右侧,因此我想加载名为底部的场景,作为底门。
这是我目前无法使用的代码
using UnityEngine;
using UnityEngine.SceneManagement;
public class GameManager : MonoBehaviour
{
[SerializeField] private string topScene;
[SerializeField] private string bottomScene;
[SerializeField] private string leftScene;
[SerializeField] private string rightScene;
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.CompareTag("Player"))
{
if (collision.CompareTag("top"))
{
LoadScene(topScene);
}
else if (collision.CompareTag("bottom"))
{
LoadScene(bottomScene);
}
else if (collision.CompareTag("left"))
{
LoadScene(leftScene);
}
else if (collision.CompareTag("right"))
{
LoadScene(rightScene);
}
}
}
private void LoadScene(string sceneName)
{
SceneManager.LoadScene(sceneName);
}
}
游戏对象仅包含一个标签。您可以检查 collision.gameObject.CompareTag("Player") 如果它包含,那么您可以通过名称来识别它,而不必再次使用 collision.CompareTag("top")。 因此,请在所有条件下使用 collision.gameObject.name ==“top”。