Пример #1
0
        private static IAssetLoad CreateIAssetLoad(string assetName, System.Type loadType)
        {
            IAssetLoad assetLoad = null;

#if UNITY_EDITOR
            if (assetName.StartsWith("resources://"))
            {
                assetLoad = ResourcesrLoad.GetLoad(assetName, loadType, RemoveSharedAssetLoad);
            }
            else if (AssetLoadManager.IsSimulationMode == false)
            {
                assetLoad = EditorLoad.GetEditorLoad(assetName, loadType, RemoveSharedAssetLoad);
            }
            else
#endif
            {
                if (assetName.EndsWith(".ab"))
                {
                    assetLoad = AssetBundleLoad.GetAssetBundleLoad(assetName, RemoveSharedAssetLoad);
                }
                else
                {
                    assetLoad = AssetLoad.GetAssetLoad(assetName, loadType, RemoveSharedAssetLoad);
                }
            }

            sharedAssetLoadList.Add(assetLoad);

            return(assetLoad);
        }
Пример #2
0
        public void LoadAssetBundleSync(string assetName, System.Action <Object> onLoaded)
        {
            IAssetLoad assetLoad = GetIAssetLoad(assetName);

            if (assetLoad == null)
            {
                assetLoad = CreateIAssetLoad(assetName, null);
                assetLoadList.Add(assetLoad);
            }

            assetLoad.Retain();
            assetLoad.LoadAssetSync(onLoaded);
        }
Пример #3
0
        public void LoadAssetBundle(string assetName)
        {
            IAssetLoad assetLoad = GetIAssetLoad(assetName);

            if (assetLoad == null)
            {
                assetLoad = CreateIAssetLoad(assetName, null);
                assetLoadList.Add(assetLoad);
            }

            assetLoad.Retain();
            assetLoad.LoadAsset();
        }
Пример #4
0
        public T LoadAsset <T>(string assetName) where T : UnityEngine.Object
        {
            IAssetLoad assetLoad = GetIAssetLoad(assetName);

            if (assetLoad == null)
            {
                assetLoad = CreateIAssetLoad(assetName, typeof(T));
                assetLoadList.Add(assetLoad);
            }

            assetLoad.Retain();
            assetLoad.LoadAsset();

            return(assetLoad.Asset as T);
        }
Пример #5
0
        public void LoadAssetSync <T>(string assetName, System.Action <T> onLoaded) where T : UnityEngine.Object
        {
            IAssetLoad assetLoad = GetIAssetLoad(assetName);

            if (assetLoad == null)
            {
                assetLoad = CreateIAssetLoad(assetName, typeof(T));
                assetLoadList.Add(assetLoad);
            }

            assetLoad.Retain();
            assetLoad.LoadAssetSync((asset) =>
            {
                onLoaded?.Invoke(asset as T);
            });
        }
Пример #6
0
        public void Load(string path, Action <UnityEngine.Object> completed)
        {
            if (string.IsNullOrEmpty(path))
            {
                return;
            }

            assetLoad = GetAssetLoad(assetLoadType);

            if (assetLoad == null)
            {
                return;
            }

            StartCoroutine(assetLoad.Load(path, completed));
        }
Пример #7
0
        private IAssetLoad GetIAssetLoad(string assetName)
        {
            IAssetLoad assetLoad = GetIAssetLoad(assetLoadList, assetName);

            if (assetLoad != null)
            {
                return(assetLoad);
            }

            assetLoad = GetIAssetLoad(sharedAssetLoadList, assetName);
            if (assetLoad != null)
            {
                assetLoadList.Add(assetLoad);
                return(assetLoad);
            }

            return(null);
        }