模组的使用
模组的使用
- 创建模组:想要多次复用的元件组合可以保存为模组,首先把元件组合为编组,然后点击编辑,在右侧栏可以看到保存到我的资源。


- 跟着引导保存完模组后,就可以在 资源-我的 中看见刚才保存的模组了。
目前编程元件暂时不支持直接创建模组【资源】。
如果需要创建模组,请先将模组拖到场景中成为实例,然后即可操作这些实例。
local group_element=277 ---模组的实例ID
--也可以通过实例ID,复制模组local pos, rot, scale = Engine.Vector(0,0,200), Engine.Rotator(0,0,0), Engine.Vector(1,1,1)--创建完成后触发的回调函数local callBack = function(elementId) --新的元件ID复制给group_element_copy group_element_copy = elementIdend--通过场景中的实例ID复制元件,SpawnSource选择SceneElement:SpawnElement(Element.SPAWN_SOURCE.Scene, group_element, callBack, pos, rot, scale)
local function GroupTransform() TimerManager:AddLoopTimer( 0.03, ---持续变化 function() --也可以使用group_element_copy local _pos=Element:GetPosition(group_element) ---获取模组的变换 local _rot=Element:GetRotation(group_element) local _scale=Element:GetScale(group_element)
_pos=_pos+Engine.Vector(10,0,1) ---变换递增 _rot=_rot+Engine.Rotator(0,10,0) _scale=_scale+Engine.Vector(0.01,0.01,0.01)
Element:SetPosition(group_element,_pos,Element.COORDINATE.World) ---应用变换 Element:SetRotation(group_element,_rot,Element.COORDINATE.World) Element:SetScale(group_element,_scale) end)end-运行时创建:使用扣叮和编程元件都可以在游戏运行时创建模组。
扣叮
-
扣叮创建模组条件:地图里已经引用了该资源。
-
引用资源的方式:
| 演示 | 说明 |
|---|---|
![]()
|
方式1:请将编组【保存至我的资源】。 |
![]()
|
方式2:在资源社区添加模组,并在场景中放置生成器。 |
![]()
|
编辑生成器-【生成物】-【资源】-【模组】-下载,完成添加。 |
| 方式3:在编辑器右侧栏中预览【资源】-【模组】。 |
编程元件
- 编程元件创建模组方式:
| 演示 | 说明 |
|---|---|
|
方式1:【SpawnElement】场景来源参数使用【Element.SPAWN_SOURCE.Scene】,生成元件ID参数使用模组的【实例ID】。
示例:
|
![]()
|
方式2:编辑【编程元件】,添加自定义属性。选择【预设】-【我的模组】。 |
![]()
|
完成创建后,【选择我的模组】。【SpawnElement】场景来源参数使用【Element.SPAWN_SOURCE.Resource】,从编程元件获取该自定义属性,作为元件ID参数。
示例:
|
| 注意: 方法2只适用于【资源】-【我的】中的模组,且模组中不包含编程元件。 方法2创建模组时,与模组一同保存的界面不会被创建。 如果要创建非【我的】模组,请用方法1复制创建。 如果找不到刚刚保存到资源的模组,重新打开地图就能看到。 |
- 创建元件预设:依次点击 魔方-元件预设 ,可以进入元件预设编辑界面,编辑完元件后,点击存为自定义 ,即可保存元件预设。




在自定义中可以看到保存的元件预设,在实例信息中,可以看到元件预设ID。
元件预设ID使用时需要转换为string类型,多场景与非多场景的的元件预设ID格式上会不同,不影响使用。
--从实例信息中获取local prefabID=5126663763122828917580142197prefabID=tostring(prefabID) --转换为string类型
local pos, rot, scale = Engine.Vector(0,0,200), Engine.Rotator(0,0,0), Engine.Vector(1,1,1)--创建完成后触发的回调函数local callBack = function(elementId) print(elementId)end--创建元件预设,SpawnSource选择PrefabElement:SpawnElement(Element.SPAWN_SOURCE.Prefab, prefabID, callBack, pos, rot, scale)



