GUI:addOnClickEvent(PlayerSuperEquip._ui.Button_1, function()
SL:Print("界面11=====================================================")
local parent = GUI:getParent(PlayerSuperEquip._ui.Node)
-- 正确调用方式
local success = SL:R
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-18 11:55:45 |
👁️ 阅读: 8
从错误信息来看,问题出在 `SL:Require` 函数的调用方式上。错误提示显示"calling 'Require' on bad self (string expected, got userdata)",意思是期望一个字符串作为self参数,但传入的是userdata。
根据浮生梦老师前端课程内容,`SL:Require` 的正确调用方式应该是:
```lua
GUI:addOnClickEvent(PlayerSuperEquip._ui.Button_1, function()
SL:Print("打开传承NPC界面")
-- 获取父节点
local parent = PlayerSuperEquip._ui.Node
-- 正确调用方式:第一个参数应该是界面名称字符串
local success = SL:Require("npc/chuancheng", parent, true)
if success then
SL:Print("界面加载成功")
-- 可以在这里添加界面打开后的初始化逻辑
else
SL:Print("界面加载失败")
end
end)
```
**主要修正:**
1. `SL:Require` 的第一个参数应该是界面名称字符串
2. 第二个参数才是父节点对象
3. 第三个参数控制是否显示界面
**注意:**
- 确保 `"npc/chuancheng"` 是正确导出的界面资源路径
- 检查 `PlayerSuperEquip._ui.Node` 是否有效(不为空)
- 如果父节点获取有问题,可以使用 `GUI:Attach_Parent()` 获取当前界面的父节点
如果还有问题,可以检查控制台是否有其他错误信息,或者确认界面资源文件是否存在。
← 返回问答库