Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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,我正在做一个游戏,当玩家与钉子相撞时,应该切换场景 我有球员标签球员,我有球员和扣球盒对撞机 using UnityEngine.SceneManagement; public class Die : MonoBehaviour { void OnCollisionEnter(Collision collision) { if (collision.gameObject.tag == "EnemySpike(Clone)") {

我正在做一个游戏,当玩家与钉子相撞时,应该切换场景

我有球员标签球员,我有球员和扣球盒对撞机

using UnityEngine.SceneManagement;

public class Die : MonoBehaviour
{
    void OnCollisionEnter(Collision collision)
    {

        if (collision.gameObject.tag == "EnemySpike(Clone)")
        {

            SceneManager.LoadScene("Death");

        }
    }
}

它没有给出任何错误,只是不起作用。

我假设LoadScene永远不会被调用,因为在if语句中,您将游戏对象的标记与游戏对象的名称进行比较。您可以将
collision.gameObject.tag
更改为
collision.gameObject.name
或将字符串更改为objects实际标记。此外,最好在碰撞发生时记录日志,以便确认检测到碰撞。要做到这一点,只需使用Debug.Log(“与Spike冲突”)

为了检测到碰撞,至少有一个物体必须具有刚体。单靠对撞机是行不通的

我经常碰到这个。您可以执行
打印(“冲突”)以查看是否发生了碰撞。我打赌不是。您需要添加一个
刚体


如果它们都有刚体,请尝试改用ontrigger enter,并将spike collider设置为istrigger。

是否将要加载的场景添加到构建设置中?场景处于构建设置中,但仍不工作。这是我的新代码。使用UnityEngine.SceneManagement;公共类Die:MonoBehavior{void onCollisionCenter(冲突冲突){if(Collision.gameObject.name==“EneySpike(Clone)”{Debug.Log(“与Spike冲突”);SceneManager.LoadScene(“死亡”);}}问题很可能是if语句条件未满足。当您与钉子碰撞时,是否看到控制台上打印的“与钉子碰撞”?如果你不这样做,这意味着它没有执行。SceneManager.LoadScene似乎不是问题。不,我没有看到“与Spike碰撞”这意味着没有检测到你的碰撞。(if语句未得到满足,或者根本没有调用OnCollisionCenter。)请查看此视频以获取有关碰撞的教程。谢谢,我看了视频,但我还是不确定问题出在哪里。他们都有刚体