跳转到内容

模组的使用

模组的使用

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

image1image2

  • 跟着引导保存完模组后,就可以在 资源-我的 中看见刚才保存的模组了。

目前编程元件暂时不支持直接创建模组【资源】。
如果需要创建模组,请先将模组拖到场景中成为实例,然后即可操作这些实例。

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 = elementId
end
--通过场景中的实例ID复制元件,SpawnSource选择Scene
Element: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

-运行时创建:使用扣叮和编程元件都可以在游戏运行时创建模组。

扣叮

  • 扣叮创建模组条件:地图里已经引用了该资源。

  • 引用资源的方式:

演示 说明
image7image8 方式1:请将编组【保存至我的资源】。
image9image10 方式2:在资源社区添加模组,并在场景中放置生成器。
image11image12 编辑生成器-【生成物】-【资源】-【模组】-下载,完成添加。
方式3:在编辑器右侧栏中预览【资源】-【模组】。

编程元件

  • 编程元件创建模组方式:
演示 说明
image13 方式1:【SpawnElement】场景来源参数使用【Element.SPAWN_SOURCE.Scene】,生成元件ID参数使用模组的【实例ID】。 示例:
local callBack=function (elementID)
    print(elementID)
end
Element:SpawnElement(Element.SPAWN_SOURCE.Scene,334,callBack)
image14image15 方式2:编辑【编程元件】,添加自定义属性。选择【预设】-【我的模组】。
image16image17 完成创建后,【选择我的模组】。【SpawnElement】场景来源参数使用【Element.SPAWN_SOURCE.Resource】,从编程元件获取该自定义属性,作为元件ID参数。 示例:
local elementId = System:GetScriptParentID()
--获取编程元件名为 自定义属性_1 的资源模组类型自定义属性
local resourceGroupID = CustomProperty:GetCustomProperty(elementId, "自定义属性_1", CustomProperty.PROPERTY_TYPE.ResourceGroup)
local callBack=function (elementID)
    print(elementID)
end
Element:SpawnElement(Element.SPAWN_SOURCE.Resource,resourceGroupID,callBack)
注意: 方法2只适用于【资源】-【我的】中的模组,且模组中不包含编程元件。 方法2创建模组时,与模组一同保存的界面不会被创建。 如果要创建非【我的】模组,请用方法1复制创建。 如果找不到刚刚保存到资源的模组,重新打开地图就能看到。
  • 创建元件预设:依次点击 魔方-元件预设 ,可以进入元件预设编辑界面,编辑完元件后,点击存为自定义 ,即可保存元件预设。

image3image4image5image6

自定义中可以看到保存的元件预设,在实例信息中,可以看到元件预设ID。

元件预设ID使用时需要转换为string类型,多场景与非多场景的的元件预设ID格式上会不同,不影响使用。

--从实例信息中获取
local prefabID=5126663763122828917580142197
prefabID=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选择Prefab
Element:SpawnElement(Element.SPAWN_SOURCE.Prefab, prefabID, callBack, pos, rot, scale)