local ui = {}
function ui.init(parent)
-- Create Node
local Node = GUI:Node_Create(parent, "Node", 0.00, 0.00)
GUI:setChineseName(Node, "大地图_节点")
GUI:setTag(Node, -1)
-- Create Panel_1
local Panel_1 = GUI:Layout_Create(Node, "Panel_1", 538.00,
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-21 13:59:03 |
👁️ 阅读: 8
要让界面左右上下居中,可以使用以下方法:
```lua
-- 在ui.init函数中,创建完界面后设置居中
function ui.init(parent)
-- ... 你现有的创建代码 ...
-- 设置界面居中
local screenWidth = SL:GetMetaValue("SCREEN_WIDTH")
local screenHeight = SL:GetMetaValue("SCREEN_HEIGHT")
-- 计算居中位置
local centerX = screenWidth / 2
local centerY = screenHeight / 2
-- 设置主Panel_1居中
GUI:setPosition(Panel_1, centerX, centerY)
-- 或者如果你想让整个Node节点居中
GUI:setPosition(Node, centerX, centerY)
-- 如果你希望基于Panel_1的锚点来居中
-- 因为Panel_1设置了锚点为(0.5, 0.5),所以设置到屏幕中心即可
GUI:setPosition(Panel_1, centerX, centerY)
-- 或者使用更简单的方法,直接设置到屏幕中心
-- 注意:这里假设Panel_1的锚点是(0.5, 0.5),这样设置位置就是中心点对齐
local panelWidth = 782 -- Panel_1的宽度
local panelHeight = 420 -- Panel_1的高度
-- 如果需要精确计算,可以这样:
local posX = (screenWidth - panelWidth) / 2 + panelWidth * 0.5
local posY = (screenHeight - panelHeight) / 2 + panelHeight * 0.5
GUI:setPosition(Panel_1, posX, posY)
end
```
**关键点说明:**
1. 使用 `SL:GetMetaValue("SCREEN_WIDTH")` 和 `SL:GetMetaValue("SCREEN_HEIGHT")` 获取屏幕尺寸
2. 计算屏幕中心点坐标
3. 使用 `GUI:setPosition(widget, x, y)` 设置控件位置
4. 注意控件的锚点设置(你的代码中Panel_1的锚点是0.5,0.5)
**最简单的实现方式:**
```lua
-- 在创建完所有控件后添加:
local screenWidth = SL:GetMetaValue("SCREEN_WIDTH")
local screenHeight = SL:GetMetaValue("SCREEN_HEIGHT")
GUI:setPosition(Panel_1, screenWidth / 2, screenHeight / 2)
```
这样设置后,你的界面就会在屏幕正中央显示了。
← 返回问答库