- 博客(6)
- 收藏
- 关注
原创 Unity协程原理
Unity协程通过C#迭代器生成状态机,结合引擎内部的调度机制实现分步执行。其核心优势在于以同步代码风格编写异步逻辑,简化了定时、等待和序列化操作的处理。理解其底层原理有助于更高效地使用协程,并避免常见陷阱(如生命周期管理不当导致的空引用)。Unity的协程(Coroutine)是一种基于C#迭代器和Unity引擎调度机制实现的轻量级异步编程模型。:协程内未捕获的异常会中断当前协程,但不会导致引擎崩溃。:协程本身开销较小,但大量活跃协程可能增加每帧调度成本。),其启动的协程会自动停止。
2025-02-27 17:54:53
324
原创 Unity物理系统的各种Cast检测
在 Unity 中,Cast是物理检测的核心工具,用于实现等功能。以下是 Unity 中常用的Cast方法及其应用场景,涵盖和物理系统。:检测一条射线是否与场景中的物体发生碰撞(点对点的线性检测)。:射击、点击交互、视线检测、地面检测等。
2025-02-27 13:47:20
426
原创 Unity继承了MonoBehaviour的类通过接口实现OnDestroy()方法在删除物体时会调用吗
Unity的生命周期回调机制:Unity通过反射检查派生类中是否存在特定名称和签名的方法(如只要类中有这样的方法,无论是否通过接口实现,都会被调用。接口的作用:接口只是强制要求类实现方法,但不直接影响Unity的回调逻辑。Unity不关心方法是否属于接口,只关注类中是否存在匹配的方法。命名和签名必须严格匹配:若类中的方法是为了实现接口而编写的,其名称和签名()必须与Unity预期的完全一致,否则不会被识别为生命周期回调。当销毁MyObject实例时,控制台会输出"OnDestroy called!
2025-02-25 10:48:02
350
原创 Unity动画系统如果调整动画播放速度会导致动画上添加的事件被跳过无法执行吗?
播放速度本身不会跳过事件,但极端速度可能导致事件在同一帧密集触发。直接跳转时间轴(如修改MotionTime)或中断动画是事件跳过的常见原因。对于高精度需求的事件,建议通过代码逻辑手动控制触发条件。
2025-02-23 13:47:52
337
原创 C#Struck和Class的区别
特性structclass类型值类型引用类型内存分配栈/父类型存储堆赋值行为复制值复制引用继承仅可实现接口支持继承和多态可为null需默认允许默认构造函数不能自定义无参(C# 10+部分支持)可自定义适用场景小型、不可变数据复杂对象、需共享引用。
2025-02-21 03:50:03
346
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人