예제 #1
0
        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);
            }
        }
예제 #2
0
 public void Remove(GameObjectComponent component)
 {
     m_components.Remove(component);
     component.End();
 }
예제 #3
0
 public void Attach(GameObjectComponent component)
 {
     component.AttachTo(this);
     m_components.Add(component);
     component.DoStart();
 }