Пример #1
0
    private void loadAsset <T>(string resPath, LoadCb loadCallBack, ResEnum resEnum, bool isAsync = true) where T : UnityEngine.Object
    {
        if (loadedCacheDict.ContainsKey(resPath))
        {
            if (loadCallBack != null)
            {
                addResRef(resPath);
                loadCallBack(loadedCacheDict[resPath], resPath);
            }
            return;
        }

        if (waitLoadInfoDict.ContainsKey(resPath))
        {
            waitLoadInfoDict[resPath].LoadFinishCb.Insert(0, loadCallBack);
            return;
        }

        ResLoadInfo loadInfo = this.resLoadInfoPool.GetItem();

        loadInfo.ResPath = resPath;
        loadInfo.LoadFinishCb.Insert(0, loadCallBack);

        waitLoadInfoDict[resPath] = loadInfo;

        if (isAsync)
        {
            AssetLoader.Instance.LoadAssetAsync <T>(resPath, loadFinishCallBack);
        }
        else
        {
            AssetLoader.Instance.LoadAsset <T>(resPath, loadFinishCallBack);
        }
    }
Пример #2
0
 public void LoadPrefab(string resPath, LoadCb loadCallBack)
 {
     LoadAssetAsync <GameObject>(resPath, loadCallBack, ResEnum.Prefab);
 }
Пример #3
0
 public void LoadAssetAsync <T>(string resPath, LoadCb loadCallBack, ResEnum resEnum) where T : UnityEngine.Object
 {
     loadAsset <T>(resPath, loadCallBack, resEnum, true);
 }
 public static extern void setNavigationFunctions(int windowID, string hookUrl, NavHookCb navCb, LoadCb loadCb);