public GameObject(Asset <GameObjectDefinition> def) { m_definition = def; m_definition.OnAssetChanged += new OnChange(m_definition_OnAssetChanged); m_started = false; m_name = def.Name; m_components = new List <GameObjectComponent>(); Engine.World.Add(this); foreach (var cmp in m_definition.Content.Components) { GameObjectComponent clonedCmp = cmp.Clone(); clonedCmp.Name = cmp.Name; Attach(clonedCmp); } }
public void Remove(GameObjectComponent component) { m_components.Remove(component); component.End(); }
public void Attach(GameObjectComponent component) { component.AttachTo(this); m_components.Add(component); component.DoStart(); }