Unity 物体触碰事件监听

声明委托

复制代码
public delegate void MyDelegate(Collider trigger);

C# 委托(Delegate) | 菜鸟教程 (runoob.com)https://www.runoob.com/csharp/csharp-delegate.html

定义委托

复制代码
public MyDelegate onTriggerEnter;
public MyDelegate onTriggerStay;
public MyDelegate onTriggerExit;

动态挂载

复制代码
public static Listener Get(GameObject go)
{
    Listener listener = go.GetComponent<Listener>();
    if (listener == null) 
        listener = go.AddComponent<Listener>();
    return listener;
}

监听

复制代码
private void OnTriggerEnter(Collider trigger)
{
    onTriggerEnter?.Invoke(trigger);
}
private void OnTriggerStay(Collider trigger)
{
    onTriggerStay?.Invoke(trigger);
}
private void OnTriggerExit(Collider trigger)
{
    onTriggerExit?.Invoke(trigger);
}

示例

复制代码
GameObject colliderObj;

Listener.Get(colliderObj).onTriggerEnter += OnEnter;
Listener.Get(colliderObj).onTriggerStay += OnStay;
Listener.Get(colliderObj).onTriggerExit += OnExit;

void OnEnter(Collider trigger)
{
    Debug.Log("物体" + trigger.name + "进入");
}
void OnStay(Collider trigger)
{
    Debug.Log("物体" + trigger.name + "停留");
}
void OnExit(Collider trigger)
{
    Debug.Log("物体" + trigger.name + "退出");
}

Unity 碰撞器(Collider)与触发器(Trigger)_unity colider 触发器碰撞触发器-CSDN博客文章浏览阅读1.1w次,点赞7次,收藏26次。要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起,除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中,没有碰撞体的刚体会彼此相互穿过。物体发生碰撞的必要条件:  两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbod_unity colider 触发器碰撞触发器https://blog.csdn.net/sky1466181491/article/details/76684776

相关推荐
叶帆9 天前
【YFIOs】用C#开发硬件之设备上云
开发语言·unity·c#
久数君9 天前
AI三维建模工具“造形家”:地理场景三维化的高效解决方案
unity·glb·ai算法·ai三维建模工具·地图框选·造形家·城市建筑模型
会思考的猴子10 天前
Unity VFX 属性 Postion 和 TargetPostion
unity
心前阳光10 天前
Unity资源导入之自动化资源导入
unity·自动化·游戏引擎
心前阳光10 天前
Unity之2021.3.45f2c1发布安卓程序遇到的问题
android·unity·游戏引擎
纪纯10 天前
PicoVR Unity Integration SDK 3.4 常用交互API
unity·游戏引擎·vr·pico
龙智DevSecOps解决方案10 天前
3A 游戏优化技术栈:如何打通引擎级分析工具与 DevOps 持续集成管线?
unity·性能优化·游戏开发·技术美术·perforce·unrealengine
葛兰岱尔10 天前
从 SolidWorks 到 Three.js,从 Inventor 到 Unity——制造业CAD模型“几何-语义一体化“转换,不再是天方夜谭!
开发语言·javascript·unity
玉夏10 天前
【Shader基础】UV 与纹理采样 Part1
unity·着色器·uv
zdr尽职尽责10 天前
Unity录像功能
学习·ui·unity·游戏引擎