游戏对象在碰撞时什么都不做

Game object does nothing on collide

伙计们!我是游戏开发的新手,也是统一引擎的新手,所以也许这个问题很愚蠢,但我需要在球与平台碰撞时启动“菜单”场景,但它什么也没做。我不知道触发器和碰撞器。我已经阅读了 2 个小时,但仍然无法解决问题。

unity inspector settings

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

public class LoseCollider : MonoBehaviour
{
    private void OnTriggerEnter2D(Collider2D col)
    {
        Debug.Log("hey " + col.name);
        SceneManager.LoadScene("Menu");
    }
}

回答

选中 Collider 组件中的 Is Trigger 框。

推理

您必须这样做的原因是 Unity 有 2 种碰撞“模式”——普通碰撞 (OnCollisionEnter) 和触发碰撞 (OnTriggerEnter)。这两者的区别是Normal collision检查碰撞并与物体交互(无脚本),而Trigger Collision只检查碰撞而不与物体交互。这两种“模式”不可互换——您不能使用正常碰撞模式并选中 Is trigger 框(因为 Unity 只会检查正常碰撞),并且您不能使用 Trigger 碰撞模式而不选中 Is Trigger 框(Unity只会检查触发碰撞)。

一些有用的链接

https://docs.unity3d.com/ScriptReference/Collider.html https://docs.unity3d.com/ScriptReference/Collider.OnTriggerEnter.html

希望你觉得这有用:)