如何在碰撞时切换Unity 2D中的场景



我想知道如何在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。这是一个使用Rigidbody2DCollider2D组件的2D物理。

  • ColliderOnTriggerEnter(Collider),**而不是Collider2D。这是一个使用RigidbodyCollider组件的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。

相关内容

  • 没有找到相关文章

最新更新