迷你世界UGc3.0脚本Wiki[组件函数]
Skip to content迷你世界UGC3.0脚本WikiMenuOn this pageSidebar Navigation快速入门欢迎MOD、组件介绍什么是Lua编程组件介绍组件说明组件互相操作组件函数组件属性事件触发器事件管理组件事件管理函数库服务模块对象模块管理接口 GameObject角色模块管理接口 Actor玩家模块管理接口 Player生物模块管理接口 Monster方块模块管理接口 Block背包模块管理接口 Backpack界面模块管理接口 CustomUI图文信息模块管理接口 Graphics区域模块管理接口 Area容器模块管理接口 WorldContainer资源模块管理接口 Mod计时器模块管理接口 Timer状态模块管理接口 Buff消息模块管理接口 Chat普通变量数据管理接口 Data数组变量数据管理接口 Array二维表变量数据管理接口 TableKV表变量数据管理接口 Map世界模块管理接口 World道具模块管理接口 Item全局函数全局函数枚举枚举库脚本常见问题开发者常见问题进阶指南全局函数触发器脚本交互对象介绍KV排行榜介绍二维表介绍道具实例更新日志更新日志组件函数组件上的API函数名及描述如下:序号函数名函数描述1GetGameObject(...)获取该组件挂载的对象实例2GetGameObjectId(...)获取组件挂载的对象实例id3IsValid(...)获取组件是否有效4AddComponent(...)在组件所在的对象上添加指定组件5RemoveComponent(...)删除在组件所在的对象上的指定组件6GetComponent(...)获取组件所在对象上的指定组件7PushCustomEvent(...)发送自定义消息(异步)8PushCustomEventSync(...)发送自定义消息(同步)9AddCustomEvent(...)监听自定义消息广播10RemoveCustomEvent(...)移除自定义事件监听11AddTriggerEvent(...)添加触发事件12RemoveTriggerEvent(...)移除触发事件监听13PushEvent(...)发送对象事件(异步)14PushEventSync(...)发送对象事件(同步)15AddEvent(...)监听对象事件16RemoveEvent(...)移除对象的事件监听17DoTaskInTime(...)启动定时器在指定时间执行任务18DoPeriodicTask(...)启动定时器周期性执行任务19ClearAllTask(...)清除所有定时器任务20SetEventIsEnable(...)设置是否启用事件21ThreadWork(...)启动新协程22ThreadWait(...)线程等待23PushCloudServerMsg(...)发送云服广播消息(异步)24AddCloudSeverEvent(...)添加云服消息监听(异步)25RemoveCloudSeverEvent(...)移除云服消息监听(异步)GetGameObject参数及类型无返回值及类型ret:GameObject 挂载对象该方法的主要作用 获取该组件挂载的对象实例具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 该组件挂载的对象实例 local object self:GetGameObject() -- 可以使用 object 直接操作对象 -- 例如给对象打上标签 object:AddTag(这是恐龙类型) end return ScriptGetGameObjectId参数及类型无返回值及类型ret:GameObject 挂载对象该方法的主要作用 获取组件挂载的对象实例id具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 该组件挂载的对象实例 --ui 获取的是ui的工程id 方块获取的是方块的类型id 其他类型获取的是对象的实例id local id self:GetGameObjectId() end return ScriptIsValid参数及类型无返回值及类型ret:boolean 是否有效该方法的主要作用 获取组件是否有效具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() local isValid self:IsValid() if isValid then print(组件有效) else print(组件无效) end -- 操作缓存的其他组件的需要先判断组件是否有效避免相关组件被销毁后操作无效 if self.otherCmp and self.otherCmp:IsValid() then self.otherCmp:DoSomething() end end return ScriptAddComponent参数及类型string 组件id返回值及类型ret:component 组件对象该方法的主要作用在组件所在的对象上添加指定组件(对象已经存在相同id组件的则添加不上)具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 获取组件 local cmp self:AddComponent(组件id) if cmp then print(组件添加成功) cmp:DoSomething() else print(组件添加失败) end end return ScriptRemoveComponent参数及类型string 组件id返回值及类型ret: 无该方法的主要作用删除在组件所在的对象上的指定组件具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 删除组件 self:RemoveComponent(组件id) end return ScriptGetComponent参数及类型string 组件id返回值及类型ret:component 组件对象该方法的主要作用获取组件所在对象上的指定组件具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 添加组件 local cmp self:GetComponent(组件id) if cmp then print(获取到组件) cmp:DoSomething() else print(获取组件失败) end end return ScriptPushCustomEvent参数及类型string 消息id多个基本数据类型 消息内容返回值及类型ret: 无该方法的主要作用发送自定义消息(异步)具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 发送自定义消息 id为 消息id, 3个参数消息参数1, 100, true self:PushCustomEvent(消息id, 消息参数1, 100, true) -- 自定义消息id 使用触发器的广播id 则触发器也能收到消息, -- 参数类型需要跟触发器广播的定义对应上 end return ScriptPushCustomEventSync参数及类型string 消息id多个基本数据类型 消息内容返回值及类型ret: 无该方法的主要作用发送自定义消息(同步)具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 发送自定义消息 id为 消息id, 3个参数消息参数1, 100, true self:PushCustomEventSync(消息id, 消息参数1, 100, true) -- 自定义消息id 使用触发器的广播id 则触发器也能收到消息 --参数类型需要跟触发器广播的定义对应上 end return ScriptAddCustomEvent参数及类型string 消息idfunction 回调函数返回值及类型ret: 无该方法的主要作用监听自定义消息广播具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 第一种写法 -- 自定义消息id 使用触发器的广播id 则触发器发送的消息会触发回调函数 self:AddCustomEvent(消息id, self.OnCustomEvent) -- 第二种写法 self:AddCustomEvent(消息id, function(cmp,eventId, param1, param2, param3) print(收到自定义消息, eventId, param1, param2, param3) end) end function Script:OnCustomEvent(eventId, param1, param2, param3) -- 假如广播发了3个参数 123 -- 则param1, param2, param3 的值分别为 1, 2, 3 print(收到自定义消息, eventId, param1, param2, param3) end return ScriptRemoveCustomEvent参数及类型string 消息id返回值及类型ret: 无该方法的主要作用移除自定义事件监听具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 删除组件中监听的自定义消息删除该组件全部 消息id 的监听 self:RemoveCustomEvent(消息id) end return ScriptAddTriggerEvent参数及类型string 事件类型function 回调函数number|string 过滤参数1(可不传) 使用请参考触发器事件参数过滤number|string 过滤参数2(可不传)返回值及类型ret: 无该方法的主要作用添加触发事件该函数只在ui跟世界类型组件有效可以监听的事件列表参考触发器事件管理具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 添加点击方块事件 self:AddTriggerEvent(TriggerEvent.PlayerClickBlock, self.OnPlayerClickBlock) --监听玩家进入区域事件 -- self:AddTriggerEvent(TriggerEvent.PlayerAreaIn, self.OnPlayerAreaIn,4297367315) --监听玩家点击界面id事件 -- self:AddTriggerEvent(TriggerEvent.UIButtonClick, self.OnBtnClick, 7589854082086094858-57016_1) --仅UI组件可用 end function Script:OnPlayerClickBlock(event) -- event.blockid 事件中的方块类型 -- event.x 事件中的x坐标 -- event.y 事件中的y坐标 -- event.z 事件中的z坐标 print(玩家点击方块) end return ScriptRemoveTriggerEvent参数及类型string 事件类型返回值及类型ret: 无该方法的主要作用移除触发事件监听具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 删除组件中监听点击方块事件 self:RemoveTriggerEvent(TriggerEvent.PlayerClickBlock) end return ScriptPushEvent参数及类型string 自定义事件类型多个基本数据类型 事件内容返回值及类型ret: 无该方法的主要作用发送对象事件(异步) 只有同个对象上监听的组件才能收到事件具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 发送自定义消息 id为 自定义事件类型, 3个参数参数1, 100, true self:PushEvent(自定义事件类型1, 参数1, 100, true) end return ScriptPushEventSync参数及类型string 自定义事件类型多个基本数据类型 消息内容返回值及类型ret: 无该方法的主要作用发送对象事件(同步) 只有同个对象上监听的组件才能收到事件具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 发送自定义消息 id为 自定义事件类型, 3个参数参数1, 100, true self:PushEventSync(自定义事件类型1, 参数1, 100, true) end return ScriptAddEvent参数及类型string 事件类型function 回调函数number 事件触发的优先级可不传number|string 事件过滤参数1可不传number|string 事件过滤参数2可不传返回值及类型ret: 无该方法的主要作用监听对象事件可以监听自定义的也能监听官方内置对象事件可以监听的事件列表参考组件事件管理具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 监听此对象收到伤害事件 self:AddEvent(ObjectEvent.ObjectBeHurt, self.OnObjectBeHurt) -- 监听对象自定义事件 self:AddEvent(自定义事件类型1, self.OnEvent) --添加监听事件并且只按Q触发事件 -- self:AddEvent(ObjectEvent.PlayerInputKeyDown, self.OnInputKey, nil, KeyCode.Q) --添加监听血量变化事件 -- self:AddEvent(ObjectEvent.ObjectChangeAttr, self.OnChangeAttr, nil, RoleAttr.CurHp) end function Script:OnObjectBeHurt(event) print(此对象玩家/生物受到伤害) end function Script:OnEvent(event) print(收到自定义事件) end return ScriptRemoveEvent参数及类型string 事件类型返回值及类型ret: 无该方法的主要作用移除对象的事件监听具体使用案例如下lualocal Script {} function Script:OnStart() self:RemoveEvent(ObjectEvent.ObjectBeHurt) end return ScriptDoTaskInTime参数及类型function 回调函数number 时间间隔秒返回值及类型ret: 无该方法的主要作用启动定时器在指定时间执行任务具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 10秒后执行回调函数 local task self:DoTaskInTime(self.OnTime, 10) --task:Pause() -- 暂停定时器 --task:Resume() -- 恢复定时器 --task:Cancel() -- 取消定时器 end function Script:OnTime() print(10秒后执行) end return ScriptDoPeriodicTask参数及类型function 回调函数number 间隔时间秒number 延迟开始第一次执行时间默认0number 执行次数默认无限次返回值及类型ret: 无该方法的主要作用启动定时器周期性执行任务具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 每10秒执行一次 local task self:DoPeriodicTask(self.OnTask, 10) --task:Pause() -- 暂停定时器 --task:Resume() -- 恢复定时器 --task:Cancel() -- 取消定时器 end function Script:OnTask() print(10秒执行一次) end return ScriptClearAllTask参数及类型无返回值及类型ret: 无该方法的主要作用清除所有定时器任务具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 清除所有定时器任务 self:ClearAllTask() end return ScriptSetEventIsEnable参数及类型function 事件回调函数boolean 是否启用返回值及类型ret: 无该方法的主要作用设置是否启用事件具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() self:AddTriggerEvent(TriggerEvent.PlayerClickBlock, self.OnPlayerClickBlock) -- 暂时不需要触发事件的可以设置事件不会被触发 也可以通过删除事件屏蔽 self:SetEventIsEnable(self.OnPlayerClickBlock, false) end function Script:OnPlayerClickBlock(event) print(玩家点击方块) end return ScriptThreadWork参数及类型function 协程执行函数返回值及类型ret: 无该方法的主要作用启动新协程具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 启动线程 self:ThreadWork(function() print(线程启动) end) end return ScriptThreadWait参数及类型number 等待时间默认一帧返回值及类型ret: 无该方法的主要作用启动新协程具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 等待1秒 self:ThreadWait(1) end return ScriptPushCloudServerMsg参数及类型string 自定义事件类型多个基本数据类型 事件内容返回值及类型ret: 无该方法的主要作用发送云服广播消息(异步) 只有同个对象上监听的组件才能收到事件具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 发送自定义消息 id为 自定义事件类型, 3个参数参数1, 100, true self:PushCloudServerMsg(消息类型, 参数1, 100, true) end return ScriptAddCloudSeverEvent参数及类型string 事件类型function 回调函数返回值及类型ret: 无该方法的主要作用接收云服事件 可以监听的事件列表参考组件事件管理具体使用案例如下lualocal Script {} function Script:OnStart() self:AddTriggerEvent(TriggerEvent.PlayerClickBlock, self.OnPlayerClickBlock) self:AddCloudSeverEvent(cloudmsg, self.OnCloudMsgEvent) end function Script:OnPlayerClickBlock(event) self:PushCloudServerMsg(cloudmsg, 999, this is a cloud message) end function Script:OnCloudMsgEvent(event) --输出到调试窗口日志 local customEventParams event.CustomEventParams or {} print(收到云服广播 , customEventParams[1],customEventParams[2]) end return ScriptRemoveCloudSeverEvent参数及类型string 消息id返回值及类型ret: 无该方法的主要作用移除云服消息监听具体使用案例如下lualocal Script {} -- 组件启动时调用 function Script:OnStart() -- 删除组件中监听的自定义消息删除该组件全部 消息id 的监听 self:RemoveCloudSeverEvent(消息id) end return ScriptLast updated: 2025/12/31 17:15PagerPrevious page组件互相操作Next page组件属性