获取对象的尺寸
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-07 15:15:53 |
👁️ 阅读: 0
要获取游戏对象的尺寸,根据浮生梦老师前端课程内容,有几种不同的方法:
1. **获取控件原始纹理尺寸(不考虑缩放)**:
```lua
local size = GUI:getContentSize(widget)
SL:Print("宽度:", size.width)
SL:Print("高度:", size.height)
```
参数说明:
- `widget`: 控件对象(必填)
- 返回:table类型,包含width和height两个字段
2. **获取控件实际尺寸(考虑缩放后的真实大小)**:
```lua
local realSize = GUI:getBoundingBox(widget)
SL:Print("实际宽度:", realSize.width)
SL:Print("实际高度:", realSize.height)
```
参数说明:
- `widget`: 控件对象(必填)
- 返回:table类型,包含width和height两个字段
3. **如果控件是层布局,还可以获取背景图片路径**:
```lua
local bgPath = GUI:Layout_getBackGroundImageFile(widget)
SL:Print("背景图片路径:", bgPath)
```
参数说明:
- `widget`: 层对象(必填)
- 返回:string类型,背景图片文件路径
使用示例:
```lua
-- 先创建一个父节点
local parent = GUI:Win_Create("TestWin", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建一个按钮
local btn = GUI:Button_Create(parent, "btn_test", 100, 100, "res/public/1900000612.png")
-- 获取按钮尺寸
local btnSize = GUI:getContentSize(btn)
SL:Print("按钮原始尺寸 - 宽:", btnSize.width, "高:", btnSize.height)
-- 设置缩放后获取实际尺寸
GUI:setScale(btn, 2.0) -- 放大2倍
local realSize = GUI:getBoundingBox(btn)
SL:Print("按钮实际尺寸 - 宽:", realSize.width, "高:", realSize.height)
```
注意:`getContentSize()`获取的是控件的原始纹理大小,而`getBoundingBox()`获取的是经过缩放后的实际显示大小。根据你的具体需求选择合适的函数哦!
← 返回问答库