Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过触发器将玩家传送到不同的场景?_C#_Unity3d - Fatal编程技术网

C# 如何通过触发器将玩家传送到不同的场景?

C# 如何通过触发器将玩家传送到不同的场景?,c#,unity3d,C#,Unity3d,我使用了最传统的方法,但它不起作用。没有启动响应 我已经在我的播放器精灵上附加了一个rigidbody2d碰撞器(质量为0.0001,没有阻力或重力),并且选中了一个触发的方块碰撞器2d 旁注:Outdoor 1“是我想要传送我的玩家到的场景的名称 using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class TeleportToScene : MonoB

我使用了最传统的方法,但它不起作用。没有启动响应

我已经在我的播放器精灵上附加了一个rigidbody2d碰撞器(质量为0.0001,没有阻力或重力),并且选中了一个触发的方块碰撞器2d

旁注:Outdoor 1“是我想要传送我的玩家到的场景的名称

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上,但现在你提到了,我附加了它但仍然没有进展。它必须附加到不是触发器的对象上。如果两个碰撞器都是触发器,它将根本不起作用-其中一个必须不是触发器