C# 如何通过触发器将玩家传送到不同的场景?
我使用了最传统的方法,但它不起作用。没有启动响应 我已经在我的播放器精灵上附加了一个rigidbody2d碰撞器(质量为0.0001,没有阻力或重力),并且选中了一个触发的方块碰撞器2d 旁注:Outdoor 1“是我想要传送我的玩家到的场景的名称C# 如何通过触发器将玩家传送到不同的场景?,c#,unity3d,C#,Unity3d,我使用了最传统的方法,但它不起作用。没有启动响应 我已经在我的播放器精灵上附加了一个rigidbody2d碰撞器(质量为0.0001,没有阻力或重力),并且选中了一个触发的方块碰撞器2d 旁注:Outdoor 1“是我想要传送我的玩家到的场景的名称 using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class TeleportToScene : MonoB
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class TeleportToScene : MonoBehaviour
{
[SerializeField] private string newScene;
void OnTriggerStay2D(Collider2D other)
{
if (other.CompareTag ("Player"))
{
SceneManager.LoadScene("Outdoor1");
我希望它能通过盒子碰撞器并改变场景,但什么也没发生。也没有错误消息。要制作OnTiggerStay2D,你需要设置一个碰撞器2D来触发作为脚本TeleportToScene和Rigidbody2D的对象 因此,场景将是2个对象: 1.具有 -移位 -碰撞R2D(非触发器) -标记“玩家” 2.具有远程传送功能的 -隐形传态场景 -碰撞R2D(触发器) -刚体2d(运动学)
希望有帮助!你试过调试吗?标签正确吗?调用了
OnTriggerEnter
吗?哦,你的脚本被附加到了玩家对象上,对吗?@derHugo我试过调试,但根本没有调用OnTriggerEnter
。首先,我的脚本只附加到了collider cube上,但现在你提到了,我附加了它但仍然没有进展。它必须附加到不是触发器的对象上。如果两个碰撞器都是触发器,它将根本不起作用-其中一个必须不是触发器