Esempio n. 1
0
GameObject::~GameObject()
{
    _OnDestroy();

    while (!m_children.Empty())
    {
        GameObject *child = m_children.Front();
        delete child;
    }

    while (!m_components.Empty())
    {
        Component *comp = m_components.Front();
        m_components.PopFront();
        delete comp;
    }

    if (parent)
    {
        parent->m_children.Remove(this); // Remove me from parent
    }

    #ifdef BANG_EDITOR
    WindowEventManager::NotifyGameObjectDestroyed(this);
    #endif
}
 void IResourceManager::Destroy()
 {
     _OnBeforeResourcesDestroyed();
     m_mGroups.clear();
     _OnDestroy();
     for( auto& Pair : m_mLoaders )
     {
         if( !Pair.second->IsManualDestroy() )
             xst_delete( Pair.second );
     }
     m_mLoaders.clear();
     m_bDestroyed = true;
 }
Esempio n. 3
0
Scene::~Scene()
{
    _OnDestroy();
    delete m_defaultCamera;
}