function script:init() -- 接收 script
--发送打开NPC界面信息至服务端
SL:Print(self.config.name.."|"..self.path)
--类似主界面按钮
local parent = GUI:Win_FindParent(102)
--加载UI文件
GUI:LoadExport(parent, self.path)
-- --获取父节点的快捷子控件组
local ui = GUI:ui_delegate(
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-16 11:00:42 |
👁️ 阅读: 29
你的代码有几个问题导致UI不显示:
1. **缺少父节点创建**:`GUI:Win_FindParent(102)` 可能返回空值
2. **UI加载时机问题**:需要确保在界面创建后再加载UI
3. **缺少界面显示设置**:没有设置界面可见性
这是修正后的代码:
```lua
function script:init()
SL:Print(self.config.name.."|"..self.path)
-- 先创建父窗口
local parent = GUI:Win_Create("NPCWindow", 0, 0, 1136, 640, false, false, true, false, false, false, 1)
-- 设置窗口属性
GUI:setVisible(parent, true)
GUI:setTouchEnabled(parent, true)
-- 加载UI文件
GUI:LoadExport(parent, self.path)
-- 获取UI控件
local ui = GUI:ui_delegate(parent)
-- 检查按钮是否存在
if not GUI:Win_IsNull(ui.btn_swich) then
GUI:addOnClickEvent(ui.btn_swich, function()
SL:Print("点击了开关")
end)
else
SL:Print("按钮btn_swich不存在")
end
end
return script
```
**关键修改:**
1. 使用 `GUI:Win_Create` 创建父窗口
2. 设置窗口为可见和可触摸
3. 添加了按钮空值检查
**常见原因排查:**
- 检查 `self.path` 路径是否正确
- 确认UI文件中的控件ID是否包含 `btn_swich`
- 查看控制台是否有错误输出
如果还有问题,检查一下你的UI导出文件是否正确导出了 `btn_swich` 这个控件。
← 返回问答库