你的代码可以优化得更简洁。这里用`if-elseif`结构来避免重复判断,并用循环来批量设置控件可见性:
```lua
-- 先定义控件分组
local wanchengGroup = {ui.wancheng, ui.wancheng1, ui.wancheng2, ui.wancheng3, ui.wancheng4}
local imageGroup = {ui.Image_4, ui.Image_5, ui.Image_6, ui.Image_7, ui.Image_8}
-- 根据var值确定显示哪个索引
local index = 0
if var >= 1 and var < 2 then
index = 1
elseif var >= 2 and var < 3 then
index = 2
elseif var >= 3 and var < 4 then
index = 3
elseif var >= 4 and var < 5 then
index = 4
elseif var >= 5 then
index = 5
end
-- 批量设置可见性
for i = 1, 5 do
local wVisible = (i == index)
local iVisible = (i == index)
if wanchengGroup[i] then
GUI:setVisible(wanchengGroup[i], wVisible)
end
if imageGroup[i] then
GUI:setVisible(imageGroup[i], iVisible)
end
end
```
**优化说明:**
1. 使用`if-elseif`结构:更清晰,避免重复判断
2. 控件分组:将相关控件放入数组,便于批量操作
3. 循环处理:减少重复代码行数
4. 增加nil检查:避免控件不存在时报错
**函数说明:**
- `GUI:setVisible(widget, value)`:设置控件可见性
- `widget`:控件对象
- `value`:布尔值,true为可见,false为隐藏
这样优化后代码更易维护,如果要增加新的状态只需要修改数组和判断条件即可。