C# 当摄影机与地形碰撞时加载游戏覆盖场景

C# 当摄影机与地形碰撞时加载游戏覆盖场景,c#,unity3d,C#,Unity3d,这里我为所有标记为丢失的地形创建一个空的 如果玩家与其中一个地形发生碰撞,我想加载gameOver场景,所以我编写了这段代码,但什么也没发生 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class collide : MonoBehaviour { private LevelManager

这里我为所有标记为丢失的地形创建一个空的

如果玩家与其中一个地形发生碰撞,我想加载gameOver场景,所以我编写了这段代码,但什么也没发生

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class collide : MonoBehaviour
{
    private LevelManager l;
    // Start is called before the first frame update
    void Start()
    {
        //l = GameObject.FindObjectOfType<LevelManager>();

    }

    // Update is called once per frame
    void Update()
    {

    }
    void OnColliderEnter(Collision c)
    {
        if (c.gameObject.tag == "Lost") {
            SceneManager.LoadScene("Lose");
        }

    }

}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
使用UnityEngine.SceneManagement;
公共类冲突:单一行为
{
私人经理l;
//在第一帧更新之前调用Start
void Start()
{
//l=GameObject.FindObjectOfType();
}
//每帧调用一次更新
无效更新()
{
}
碰撞中心无效(碰撞c)
{
如果(c.gameObject.tag==“丢失”){
场景管理器。加载场景(“丢失”);
}
}
}

我是Unity的初学者,所以请尝试向我详细解释。

我想你是在寻找而不是
onColliderCenter()

我倾向于编写控制台来一次隔离一个问题。可能先确认您正在捕获碰撞事件,然后再担心之后的场景更改

void OnCollisionEnter(碰撞器列)
{
//相比之下,它的性能更好
if(col.gameObject.CompareTag(“死亡地带”))
{
Log($“这是您死在{col.gameObject.name}上的地方”);
}否则
{
Log($“命中一个名为{col.gameObject.name}的没有标记的游戏对象。”);
}
}

如果您能更准确地指定问题,可能会更好。我不明白,如果所有地形游戏对象都有“丢失”标签,或者只有丢失的游戏对象才有“丢失”标签?或者每个地形对象都有自己的非静态刚体和任何类型的碰撞器?你可能会遇到一些问题,需要更明确地说明,然后我想我可以帮助你