public void UnloadAsset(string componentName, bool ignoreUnloadUnusedAssets = false)
 {
     if (_globalComponentTable.ContainsKey(componentName))
     {
         Fabric.Component component = _globalComponentTable[componentName];
         if (component != null)
         {
             _components.Remove(component);
             if (component.ParentComponent != null)
             {
                 component.ParentComponent.RemoveComponent(component);
             }
             RemoveChildComponentsFromGlobalTable(component, componentName);
             component.Destroy();
             UnityEngine.Object.Destroy(component.gameObject);
             if (!ignoreUnloadUnusedAssets)
             {
                 Resources.UnloadUnusedAssets();
             }
             DebugLog.Print("Assets [" + componentName + "] unloaded succesfuly");
         }
         else
         {
             DebugLog.Print("Assets [" + componentName + "] failed to unload", DebugLevel.Error);
         }
     }
     else
     {
         DebugLog.Print("Target Component [" + componentName + "] not found", DebugLevel.Error);
     }
 }