我想知道如何在2D Unity游戏中切换场景。我把场景放在构建中,对象进入colison。我使用了这个代码,但它不起作用:
using UnityEngine;
using UnityEngine.SceneManagement;
public class SceneSwitch : MonoBehaviour
{
[SerializeField] private string WhatScene;
void OnTriggerEnter(Collider2D other)
{
if (other.CompareTag("Player"))
{
SceneManager.LoadScene(WhatScene);
}
}
}
你能帮我吗?
https://i.stack.imgur.com/rpg3t.png
https://i.stack.imgur.com/HoOfl.png
https://i.stack.imgur.com/9GEgi.png
注意有
-
OnTriggerEnter2D(Collider2D)
,作为参数采用Collider2D
,而不是Collider
。这是一个使用Rigidbody2D
和Collider2D
组件的2D物理。 -
取
Collider
的OnTriggerEnter(Collider)
,**而不是Collider2D
。这是一个使用Rigidbody
和Collider
组件的3D物理。
既然你在谈论2D,你的方法应该看起来像
void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Player"))
{
SceneManager.LoadScene(WhatScene);
}
}
如果在unity2D中使用OnTriggerEnter方法出现问题,则需要将冲突设置为触发器并使用"OnTriggerEnter2D";方法在必须添加场景的构建设置中,每个场景都会有一个不同的索引。
private void OnTriggerEnter2D(Collider other)
{
if (other.CompareTag("TAG"))
{
SceneManager.LoadScene([INDEX OF THE SCENE YOU WANT TO USE]);
}
}
如果要检测碰撞,请使用OnCollisionEnter2D。