public void LoadLibrary(string assetLibrary, int ordinal, bool loadIIDtoPID, bool loadPIDtoObj, Action <bool> callback)
        {
            if (m_ordinalToLib.ContainsKey(ordinal))
            {
                Debug.LogWarningFormat("Asset Library {0} with this same ordinal {1} already loaded", m_ordinalToLib[ordinal].name, ordinal);
                callback(false);
                return;
            }

            ResourceRequest         request   = Resources.LoadAsync <AssetLibraryAsset>(assetLibrary);
            Action <AsyncOperation> completed = null;

            completed = ao =>
            {
                AssetLibraryAsset assetLib = (AssetLibraryAsset)request.asset;
                if (assetLib == null)
                {
                    if (IsBuiltinLibrary(ordinal))
                    {
                        if (ordinal - AssetLibraryInfo.BUILTIN_FIRST == 0)
                        {
                            Debug.LogWarningFormat("Asset Library was not found : {0}. Click Tools->Runtime SaveLoad->Update Libraries.", assetLibrary);
                        }
                    }
                    else if (IsSceneLibrary(ordinal))
                    {
                        if (ordinal - AssetLibraryInfo.SCENELIB_FIRST == 0)
                        {
                            Debug.LogWarningFormat("Asset Library was not found : {0}. Click Tools->Runtime SaveLoad->Update Libraries.", assetLibrary);
                        }
                    }
                    else
                    {
                        Debug.LogWarningFormat("Asset Library was not found : {0}", assetLibrary);
                    }

                    callback(false);
                    return;
                }
                AddLibrary(assetLib, ordinal, loadIIDtoPID, loadPIDtoObj);
                callback(true);
                request.completed -= completed;
            };
            request.completed += completed;
        }
        public bool AddLibrary(AssetLibraryAsset assetLib, int ordinal, bool IIDtoObj, bool PIDtoObj)
        {
            if (m_ordinalToLib.ContainsKey(ordinal))
            {
                Debug.LogWarningFormat("Asset Library with ordinal {0} already loadeded", assetLib.Ordinal);
                return(false);
            }

            if (m_loadedLibraries.Contains(assetLib))
            {
                Debug.LogWarning("Asset Library already added");
                return(false);
            }

            assetLib.Ordinal = ordinal;
            m_loadedLibraries.Add(assetLib);
            m_ordinalToLib.Add(ordinal, assetLib);
            LoadMapping(ordinal, IIDtoObj, PIDtoObj);

            return(true);
        }