游戏对象在碰撞时什么都不做
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
希望你觉得这有用:)
伙计们!我是游戏开发的新手,也是统一引擎的新手,所以也许这个问题很愚蠢,但我需要在球与平台碰撞时启动“菜单”场景,但它什么也没做。我不知道触发器和碰撞器。我已经阅读了 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
希望你觉得这有用:)