diff options
author | chai <chaifix@163.com> | 2019-01-30 20:30:00 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-01-30 20:30:00 +0800 |
commit | e4a3a354f523ea12601dae2f7cd89caf7aae6c00 (patch) | |
tree | f237c84bff9788218bd991fc87500970411ed53b /Source/Asura.Framework/gameobject.lua | |
parent | 8d6eb73fcd8d42ced53fc4178d4f4fc35c63abf3 (diff) |
*misc
Diffstat (limited to 'Source/Asura.Framework/gameobject.lua')
-rw-r--r-- | Source/Asura.Framework/gameobject.lua | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/Source/Asura.Framework/gameobject.lua b/Source/Asura.Framework/gameobject.lua new file mode 100644 index 0000000..cd984ee --- /dev/null +++ b/Source/Asura.Framework/gameobject.lua @@ -0,0 +1,115 @@ +-- +-- 实体,作为scene中的实体存在。Scene中唯一管理的就是实体entity,游戏里的所有component都依附于entity存在,包括camera组件。 +-- +require "transform" + +AsuraEngine.GameObject = AsuraEngine.Asset.Sub("GameObject") + +local GameObject = AsuraEngine.GameObject + +function GameObject:Ctor() + self.transform = AsuraEngine.Transform.New() + self.subentities = {} -- Sub node entities +end + +function GameObject:AddChild(gameobject) + table.insert(self.child, gameobject) +end + +function GameObject:AddComponent(type, name) + local cname = type + if name == nil then + cname = name + end + local component = AsuraEngine.Component.GetComponent(type) + self.components[cname] = compoennt +end + +-- 根据组件名拿到组件 +function GameObject:GetComponent(name) + return self.components[name] +end + +-- 根据组件类型拿到组件 +function GameObject:GetComponentByType(tname) + +end + +function GameObject:OnEnable() + +end + +function GameObject:OnEvent(e) + if self.components == nil or type(self.components) ~= "table" then + AsuraEditor.LogError("") + return + end + for name, component in self.components do + if component.OnEvent ~= nil then + component:OnEvent(e) + end + end +end + +function GameObject:OnUpdate(dt) + for name, component in self.components do + if component.OnUpdate ~= nil then + component:OnUpdate(dt) + end + end +end + +function GameObject:OnRender() + for name, component in self.components do + if component.OnRender ~= nil then + component.OnRender() + end + end +end + +function GameObject:OnDisable() + for name, component in self.components do + if component.OnDisable ~= nil then + component.OnDisable() + end + end +end + +function GameObject:GetTrasform() + return self.transform +end + +function GameObject:GetPosition() + +end + +function GameObject:GetScale() + +end + +function GameObject:GetRotation() + +end + +function GameObject:SetTrasform(transform) + +end + +function GameObject:SetPosition() + +end + +function GameObject:SetScale() + +end + +function GameObject:SetRotation() + +end + +--写asset +function GameObject:ToAsset() + +end + +return GameObject
\ No newline at end of file |