Skip to content

开发者常见问题

在查阅开发者学院中的脚本API时,若有任何问题或建议,欢迎通过问卷进行反馈!【点我填写问卷】

1. 常用快捷键:

  • 撤销-Undo(Ctrl+Z)

  • 剪切-Cut(Ctrl+X)

  • 复制-Copy(Ctrl+C)

  • 粘贴-Paste(Ctrl+V)

  • 插入ID-Insertld(Ctrl +I)

  • 查找-Find(Ctrl+F)

  • 全选-SelectAll(Ctrl+A)

  • 批量注释/取消注释-Notes (Ctrl+/)

2. 如何等待1秒后继续执行?

Lua
threadpool:wait(1)

3. 如何打印错误日志到调试面板

print

  • 参数及类型:
    • ...:number 、 string 、 boolean、数组、kv
  • 返回值及类型:
  • 该方法的主要作用: 打印信息
lua
   print("hello ",1,true)

printError

  • 参数及类型:
    • ...:number 、 string 、 boolean、数组、kv
  • 返回值及类型:
  • 该方法的主要作用: 打印错误信息
lua
   printError("hello ",1,true)

4. Block中的data在什么地方使用

data使用有具体需求,此处不建议开发者使用。开发者尽可能使用已封装过的没有data的新接口。

5.Event 需要更详细的用法及参数解释

Event即为开发者事件,是指玩家在游戏内进行了某些操作后触发的对应事件。比如玩家点击了某个方块, 这时就会触发玩家的点击方块事件,即名为"Player.ClickBlock"的事件,开发者只要注册监听该事件就能进行点击方块后的对应操作。 注册监听事件的方法如下:ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], function(event_args) ... end)。 而开发者事件在进行回调时会传回来一些对应的参数,每个开发者事件对应的参数可参考wiki中的事件系统部分。

6.appendSpeed 接口中的x,y,z参数信息

该接口的参数x,y,z表示设定一个移动距离,需要传入整数。

案例:假设把Z设定为5,当执行一次该接口后,那么objid就会向+z轴移动5格的距离

写法:appendSpeed(objid,0,0,5)

7.World 类中可否提供一个获取有所有 Actor 的方法,或者历遍其的方法 (非 World:getActorsByBox)

由于游戏机制及效率考虑的原因,此功能不给予提供。但我们会提供触发器生物库的ActorId表

8. 播放UI动效时,如何指定不同的动效 https://dev-wiki.mini1.cn/ugc-wiki/apis/customui.html#playelementanim

-- 显示动效
10001 渐显
10002 放大显示
10003 缩小显示
-- 隐藏动效
20001 渐隐
20002 放大隐藏
20003 缩小隐藏
-- 循环动效
30001 颤抖
30002 跳动
30003 心跳
30004 摇摆
30005 旋转
30006 翻转
30007 顺时针扫描
30008 逆时针扫描
30009 闪烁
-- 文字动效
40001 打字机

9.界面中的克隆元件接口如何使用

克隆体id获取方法:

1、克隆体的id为母体id#clone1、2、3。 例如“7517482985765730755-134493_3#clone2”

2、如果克隆带子元件的元件时,其子元件会被一同克隆,此时如果想要获取子元件的id,可以用以下两种方式:

​ a. 直接在子元件id+#clone1、#clone2,每克隆一次+1,例如"7517482985765730755-134493_3#clone2"

​ b. 用克隆体父元件id.老子元件id,例如"7517482985765730755-134493_1#clone1.7517482985765730755-134493_3"


详细示例:

  1. 首先如图我们制作一个层级关系的示例:

image-20250619143457633

  1. 界面中的id如下表格所示
元件id
image-202506191431047277517482985765730755-134493_1
image-202506191431450927517482985765730755-134493_2
image-202506191431597277517482985765730755-134493_3
image-202506191432134157517482985765730755-134493_4
image-202506191432222807517482985765730755-134493_5
  1. 我们编写了一段代码,用来克隆元件,然后将克隆出来的子元件隐藏

    lua
    local Script = {}
    
    --属性定义
    Script.propertys = {
    }
    
    -- 需要开放给别的组件访问的函数需要配置
    Script.openFnArgs = {
    }
    
    -- 组件启动时调用
    function Script:OnStart()
        -- 监听UI按钮点击事件(元件id)
        self:AddTriggerEvent(TriggerEvent.UIButtonTouchEnd, self.OnUIButtonTouchEnd) --输出点击按钮的id
        self:AddTriggerEvent(TriggerEvent.UIButtonClick, self.OnUICloneButtonClick, "7517482985765730755-134493_4") --点击克隆按钮
        self:AddTriggerEvent(TriggerEvent.UIButtonClick, self.OnUIHideButtonClick, "7517482985765730755-134493_5") --点击隐藏克隆出来的按钮
    
    end
    
    function Script:OnUIButtonTouchEnd(event) --点击任意按钮时,输出点击按钮的id
        local id = event.uielement
        print("任意按钮被点击开始")    
        print('点击了'..id)
        print("任意按钮被点击结束")
    end
    
    function Script:OnUIHideButtonClick(event) 
        --第一种获取克隆体的子元件的方法,直接在原元件id+#clone1、#clone2,每克隆一次+1,例如"7517482985765730755-134493_3#clone2"
        --local isSuccess = CustomUI:HideElement(Player:GetHostUin(),"7517482985765730755-134493", "7517482985765730755-134493_3#clone1")
        
        --第二种获取克隆体的子元件的方法,用克隆体父元件id.老子元件id,例如"7517482985765730755-134493_1#clone1.7517482985765730755-134493_3"   
        local isSuccess = CustomUI:HideElement(Player:GetHostUin(),"7517482985765730755-134493", "7517482985765730755-134493_1#clone1.7517482985765730755-134493_3")
        if isSuccess == true then
            print("隐藏成功")
        end
    
    end
    
    function Script:OnUICloneButtonClick(event) --点击克隆按钮时,克隆元件,然后移动元件的位置
        local id = CustomUI:CloneElement(Player:GetHostUin(), "7517482985765730755-134493", "7517482985765730755-134493_1")
        local isSuccess = CustomUI:SetPosition(Player:GetHostUin(),"7517482985765730755-134493" ,id, 600, 200)
        if id ~= nil then
            print("克隆元件成功")
            print("克隆体的id:"..id) --克隆体的id为原元件id+#clone1,例如“7517482985765730755-134493_1#clone1”
        end
    end
    
    
    return Script
    1. 示例视频