LUA_EVENT_PCMINIMAP_STATUS_CHANGE 是一个引擎事件,用于监听PC端小地图显示状态的改变。
要触发这个事件,你需要先注册它,然后在状态改变时进行响应。以下是标准做法:
1. **注册事件监听**(通常在界面初始化时):
```lua
SL:RegisterLUAEvent(LUA_EVENT_PCMINIMAP_STATUS_CHANGE, "你的模块名", 你的回调函数)
```
2. **创建回调函数处理状态变化**:
```lua
function 你的回调函数(status)
-- status 参数表示小地图的显示状态
-- 0: 隐藏
-- 1: 显示
-- 2: 其他状态
if status == 0 then
SL:print("小地图已隐藏")
elseif status == 1 then
SL:print("小地图已显示")
end
end
```
3. **事件触发时机**:
这个事件是由游戏引擎自动触发的,当玩家通过快捷键(如Tab键)或界面操作切换小地图显示/隐藏状态时,引擎会发送这个事件通知前端界面更新。
4. **完整示例**(参考浮生梦老师前端课程内容):
```lua
-- 定义模块
local MyModule = {}
function MyModule.Init()
-- 注册小地图状态改变事件
SL:RegisterLUAEvent(LUA_EVENT_PCMINIMAP_STATUS_CHANGE, "MyModule", MyModule.OnMiniMapStatusChange)
end
function MyModule.OnMiniMapStatusChange(status)
-- 根据状态更新界面
if status == 0 then
SL:print("PC小地图状态:隐藏")
elseif status == 1 then
SL:print("PC小地图状态:显示")
elseif status == 2 then
SL:print("PC小地图状态:状态2")
end
end
-- 初始化模块
MyModule.Init()
```
5. **清理事件**(界面销毁时):
```lua
SL:UnRegisterLUAEvent(LUA_EVENT_PCMINIMAP_STATUS_CHANGE, "你的模块名")
```
注意:这个事件是**被动触发**的,你不需要手动触发它,只需要注册监听并在状态改变时做出响应即可。引擎会在小地图显示状态发生变化时自动调用你的回调函数。