Appearance
对象介绍
概述
对象是组件逻辑的载体, 对象上可以挂载多个组件。目前对象类型有:世界、ui、方块、玩家、生物、实体、投掷物、区域、位置、掉落物
注意:不同对象类型上的组件限制不一样
- 世界对象/ui对象: 可以使用触发器事件,其他对象只能使用个体对象事件
- 方块对象:方块上的组件只能使用位置去操作方块,方块并没有每个方块都独立实例化,一个类别只实例一个
- ui对象:每个ui工程只有一个实例,每个玩家没有独立实例界面,组件上需要根据玩家去操作
- 道具目前不支持挂组件,只能使用各种自定义效果
对象的API函数(注意:不是所有对象类型都有全部接口)
序号 | 函数名 | 函数描述 |
---|---|---|
1 | GetId(...) | 获取游戏对象id |
2 | GetObjType(...) | 获取对象类型 |
3 | IsValid(...) | 判断对象是否有效 |
4 | AddComponent(...) | 在对象上添加指定组件 |
5 | RemoveComponent(...) | 删除对象上的指定组件 |
6 | GetComponent(...) | 获取对象上的指定组件 |
7 | Destroy(...) | 销毁对象 |
GetId
- 参数及类型:
- 无
- 返回值及类型:
- ret:
string
对象id
- ret:
- 该方法的主要作用: 获取该对象实例id
- 具体使用案例如下:
lua
local Script = {}
-- 组件启动时调用
function Script:OnStart()
-- 该组件挂载的对象实例
local object = self:GetGameObject()
if object then
local id = object:GetId()
print("id", id)
end
end
return Script
GetObjType
- 参数及类型:
- 无
- 返回值及类型:
- ret: ObjType 对象类型枚举
- 该方法的主要作用:获取对象类型
- 具体使用案例如下:
lua
local Script = {}
-- 组件启动时调用
function Script:OnStart()
-- 该组件挂载的对象实例
local object = self:GetGameObject()
if object then
local objType = object:GetObjType()
print("objType", objType)
end
end
return Script
IsValid
- 参数及类型:
- 无
- 返回值及类型:
- ret:
boolean
是否有效
- ret:
- 该方法的主要作用: 获取对象是否有效
- 具体使用案例如下:
lua
local Script = {}
-- 组件启动时调用
function Script:OnStart()
-- 获取对象
local object = GameObject:FindObject("对象id")
-- 判断对象是否有效
if object and object:IsValid() then
-- do something
end
end
return Script
AddComponent
- 参数及类型:
string
组件id
- 返回值及类型:
- ret:component 组件对象
- 该方法的主要作用:对象上添加组件(对象已经存在相同id组件的则添加不上返回空)
- 具体使用案例如下:
lua
local Script = {}
-- 组件启动时调用
function Script:OnStart()
-- 获取世界对象
local world = GetWorld()
if world then
-- 添加组件
local cmp = object:AddComponent("组件id")
if cmp then
print("组件添加成功")
-- do something
end
end
end
return Script
RemoveComponent
- 参数及类型:
string
组件id
- 返回值及类型:
- ret: 无
- 该方法的主要作用:删除对象上的指定组件
- 具体使用案例如下:
lua
local Script = {}
-- 组件启动时调用
function Script:OnStart()
-- 获取世界对象
local object = GameObject:GetWorld()
if object then
-- 删除组件
object:RemoveComponent("组件id")
end
end
return Script
GetComponent
- 参数及类型:
string
组件id
- 返回值及类型:
- ret: component 组件对象
- 该方法的主要作用:获取对象上的指定组件
- 具体使用案例如下:
lua
local Script = {}
function Script:OnStart()
-- 获取世界对象
local object = GameObject:GetWorld()
if object then
-- 获取组件
local cmp = object:GetComponent("组件id")
if cmp then
print("组件获取成功")
-- do something
end
end
end
return Script
Destroy (注意:世界/ui/方块这3种对象类型没有这个接口)
- 参数及类型:
boolean
是否杀死, 只有生物有效, 默认flase
- 返回值及类型:
- ret: 无
- 该方法的主要作用:销毁对象
- 具体使用案例如下:
lua
local Script = {}
function Script:OnStart()
--删除其他对象
local object = GameObject:FindObject("生物id")
if object then
object:Destroy(true)
end
-- 删除挂载的对象
local object = self:GetGameObject()
if object then
object:Destroy()
end
end
return Script