[LUA-print] [GUI ERROR] GUI:Node_Create ID is exists Node_102650
[LUA-print] [GUI ERROR] GUI:LoadGUIExport can't find parent 怎么检测自动穿戴弹窗已创建
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-07-02 12:55:02 |
👁️ 阅读: 4
要检测自动穿戴弹窗是否已创建,需要检查两个关键点:
1. **避免重复创建同名节点** - 错误信息显示 `Node_102650` 已存在
2. **确保父节点存在** - 错误信息显示找不到父节点
解决方案:
```lua
-- 方法1:通过ID检测节点是否已存在
local function isAutoWearWindowCreated()
-- 假设你的弹窗ID是 "Node_102650"
local windowNode = GUI:getChildByName(parentNode, "Node_102650")
return not GUI:Win_IsNull(windowNode)
end
-- 方法2:在创建前检查
if not isAutoWearWindowCreated() then
-- 先确保父节点存在
local parent = GUI:Win_Create("GMMain", 0, 0, 0, 0, false, false, true, false, false, false, 1)
if not GUI:Win_IsNull(parent) then
-- 创建自动穿戴弹窗
local autoWearWindow = GUI:Widget_Create(parent, "Node_102650", x, y, width, height)
-- ... 其他初始化代码
else
SL:Print("父节点创建失败")
end
end
-- 方法3:使用唯一ID避免冲突
local function createUniqueAutoWearWindow()
local uniqueID = "AutoWearWindow_" .. os.time()
local parent = GUI:Win_Create("GMMain", 0, 0, 0, 0, false, false, true, false, false, false, 1)
local window = GUI:Widget_Create(parent, uniqueID, x, y, width, height)
return window
end
```
**关键点提醒:**
- 每次创建界面都要先创建父节点 `GUI:Win_Create`
- 使用 `GUI:Win_IsNull()` 判断节点是否存在
- 节点ID必须是唯一的,否则会报"ID is exists"错误
- 如果弹窗需要复用,创建后可以隐藏而不是销毁
你遇到的错误是因为要么重复创建了同名节点,要么父节点还没创建就尝试创建子节点。按照上面的方法检查就能解决这个问题!
← 返回问答库