UrhoX组件系统API
概述
UrhoX 组件继承链为 Object → Serializable → Animatable → Component,每层叠加能力:事件系统、属性序列化、属性动画、场景挂载。Component 作为所有引擎功能(StaticModel、RigidBody 等)的基类。
关键内容
- Object 层(事件基础):
SendEvent(name, data)发送事件;HasSubscribedToEvent查询订阅状态;SetBlockEvents临时屏蔽接收事件;所有引擎对象均从此层获得type/typeName/category类型信息。 - Serializable 层(属性系统):
SetTemporary(true)标记为临时对象(不参与序列化);SetInterceptNetworkUpdate(attrName, enable)拦截指定属性的网络同步,适用于需要客户端预测的属性。 - Animatable 层(属性动画):
SetObjectAnimation(ObjectAnimation*)应用整体动画资源;SetAttributeAnimation(name, ValueAnimation*, wrapMode, speed)对单个属性(如颜色、位置)做关键帧动画;wrapMode可选 WM_LOOP / WM_ONCE / WM_CLAMP;SetAnimationEnabled/SetAnimationTime控制播放。 - Component 核心接口:
GetNode()返回所属节点;GetScene()直达场景根;GetComponent(type)获取同节点上的兄弟组件;DrawDebugGeometry(debug, depthTest)绘制调试辅助图形;enabledEffective综合考虑节点启用状态的最终有效值。 - CreateMode 语义:REPLICATED(跟随网络同步)vs LOCAL(纯本地,不参与网络);在单机场景中两者无区别,多人游戏中关键区分。
来源
- raw/articles/personal/ai-dev-kit/engine-docs/api/core — UrhoX Lua API Core Module,Component/Serializable/Animatable/Object 类完整方法列表
相关
- UrhoX节点系统API — 组件通过 Node::CreateComponent 附加到节点
- 属性动画 — Animatable 层提供的属性动画能力
- UrhoX音频系统API — 音频组件同属此组件体系
- UrhoX引擎 — part_of