Appearance
对象模块管理接口 GameObject
具体函数名及描述如下:
| 序号 | 函数名 | 函数描述 |
|---|---|---|
| 1 | FindObject(...) | 根据ID查找游戏对象 |
| 2 | FindUIObject(...) | 获取UI对象 |
| 3 | FindBlockObject(...) | 查找方块类别对象 |
| 4 | CreatePrefabInst(...) | 使用预制ID创建对象 |
| 5 | CreatePrefab(...) | 创建对象列表 |
| 6 | Destroy(...) | 删除对象 |
| 7 | GetObjectPrefab(...) | 获取对象预制ID |
FindObject
lua
local uiObj = GameObject:FindObject(uiId)
if uiObj then
print("找到ui界面对象")
end
local playerObj = GameObject:FindObject(playerId)
if playerObj then
print("找到玩家对象")
endFindUIObject
lua
-- uiObjectId 是项目中已有界面的 uiid。
local result = GameObject:FindUIObject(uiObjectId)FindBlockObject
- 参数及类型:
- 返回值及类型:
- obj:object方块类别对象;未找到返回nil
- 该方法的其他说明: 根据方块类型ID查找方块类别对象
- 具体使用案例如下:
lua
-- 方块对象接口只能查找到编辑过的方块或是自定义的方块
--获取方块类型对象(场景中至少有个方块才能获取到)
local blockObj = GameObject:FindBlockObject("r0_7495946400275515402_23048")
if blockObj then
print("找到方块对象")
endCreatePrefabInst
- 参数及类型:
- 返回值及类型:
- obj:object创建的游戏对象;失败返回nil
- 该方法的其他说明: 在指定世界坐标使用预制体ID创建单个对象,可通过GetId()获取objId
- 具体使用案例如下:
lua
-- 创建场景中对象类型预制
local obj = GameObject:CreatePrefabInst("r1_7482990429829028854_22890", worldId, x + 10, y + 1, z + 10)
if obj then
local hpCmp = obj:GetComponent("HP") -- 获取血量组件
if hpCmp then
hpCmp.hp = 120 -- 设置血量
end
print("创建预制成功")
endCreatePrefab
- 参数及类型:
- 返回值及类型:
- objids:
table创建对象列表(安全对象);失败返回nil
- objids:
- 该方法的其他说明: 在指定位置按类型与预制ID创建多个对象,返回对象列表,可用GetId()获取每个对象的objId
- 具体使用案例如下:
lua
-- 创建游戏内预设的生物2只
local objs = GameObject:CreatePrefab(ObjType.Mob, 3400, x + 10, y + 1, z + 10, 2, true, worldId)
if objs and #objs > 0 then
-- obj.transform:SetPosition(10,8,10) -- 设置位置, 等同上面创的位置参数操作
for _, obj in ipairs(objs) do
local hpCmp = obj:GetComponent("HP") -- 获取血量组件
if hpCmp then
hpCmp.hp = 120 -- 设置血量
end
end
print("创建游戏内生物成功")
end
-- 创建自定义生物 1只
local customObjs = GameObject:CreatePrefab(ObjType.Mob, "r1_7482990429829028854_22890", x + 10, y + 1, z + 13, 1, true, worldId)
if customObjs and #customObjs > 0 then
print("创建自定义生物成功")
endDestroy
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否删除成功
- bool:
- 该方法的其他说明: 销毁指定ID的游戏对象(玩家、方块、世界、UI对象不可删除)
- 具体使用案例如下:
lua
local result = GameObject:Destroy(objid)GetObjectPrefab
- 参数及类型:
- objId:
number对象ID
- objId:
- 返回值及类型:
- 该方法的其他说明: 获取对象的预制ID及对象类型(掉落物、投掷物、生物等可用)
- 具体使用案例如下:
lua
local result = GameObject:GetObjectPrefab(objId)