Pyrogenesis 引擎/角色
外观
"角色"是一个概念,用于处理实体的所有视觉方面,例如用于渲染它的模型和纹理等。(待办事项:提供更多示例)。
控制角色的逻辑主要位于 VisualActor 组件中(待办事项:将“组件”链接到维基百科)。
CCmpVisualActor.Init()
此函数以“paramNode”作为参数。我不确定那是什么,但它可能是一种 XML 派生的数据结构。
如果 paramNode 有一个“Foundation”或“FoundationActor”子节点,则将使用它作为“角色名称”。如果没有,它将使用 paramNode 的“Actor”子节点作为“角色名称”。
然后,该函数使用“角色名称”、GetActorSeed() 和空选择创建一个新的“单元”。(待办事项:解释)
CUnitManager.CreateUnit()
此函数尝试使用其参数中给定的角色名称、种子和选择以及一些私有对象管理器实例化一个新的 CUnit。(待办事项:解释)
如果成功完成此操作,则将新的单元添加到单元管理器并返回到调用点。
CUnit::Create()
这是一个工厂函数。
首先,它在对象管理器中找到具有给定角色名称的基对象。如果没有找到具有该名称的基对象,它将返回 null。
然后,它根据种子计算随机变化。
然后,它找到与之匹配的对象。如果未找到对象,则返回 null。
然后,它返回一个新的 CUnit,其中包含该对象、对象管理器和选择。
CUnit::CUnit()
这只是初始化一堆变量。