public void Unload()
        {
            for (int i = 0; i < TotalComponents; ++i)
            {
                if (Components[i] is IUnloadable)
                {
                    IUnloadable CurrentUnloadable = Components[i] as IUnloadable;

                    CurrentUnloadable.Unload();

                    if (Components[i].IsComponentManager())
                    {
                        EngineComponentManager Submanager = Components[i] as EngineComponentManager;
                        Submanager.Unload();
                    }
                }
            }
        }
        public void Render(GameTime gameTime)
        {
            for (int i = 0; i < TotalComponents; ++i)
            {
                if (Components[i] is IRenderable)
                {
                    IRenderable CurrentRenderable = Components[i] as IRenderable;

                    CurrentRenderable.Render(gameTime);

                    if (Components[i].IsComponentManager())
                    {
                        EngineComponentManager Submanager = Components[i] as EngineComponentManager;

                        Submanager.Render(gameTime);
                    }
                }
            }
        }
        public void Update(GameTime gameTime)
        {
            for (int i = 0; i < TotalComponents; ++i)
            {
                if (Components[i] is IUpdatable)
                {
                    IUpdatable CurrentUpdatable = Components[i] as IUpdatable;

                    CurrentUpdatable.Update(gameTime);

                    if (Components[i].IsComponentManager())
                    {
                        EngineComponentManager Submanager = Components[i] as EngineComponentManager;

                        Submanager.Update(gameTime);
                    }
                }
            }
        }