Beispiel #1
0
        /// Resource异步加载;
        private IEnumerator <float> LoadAsync(string path, ResourceAssetProxy proxy, Action <float> progress)
        {
            if (string.IsNullOrEmpty(path))
            {
                yield break;
            }
            ResourceRequest request = Resources.LoadAsync(path);

            while (request.progress < 0.99f)
            {
                progress?.Invoke(request.progress);
                yield return(Timing.WaitForOneFrame);
            }
            while (!request.isDone)
            {
                yield return(Timing.WaitForOneFrame);
            }
            if (null == request.asset)
            {
                LogHelper.PrintError($"[ResourceMgr]LoadAsync load asset:{path} failure.");
            }

            //先等一帧;
            yield return(Timing.WaitForOneFrame);

            if (proxy != null)
            {
                proxy.OnFinish(request.asset);
            }
            else
            {
                LogHelper.PrintError($"[ResourceMgr]LoadAsync proxy is null:{path}.");
            }
        }
Beispiel #2
0
        /// <summary>
        /// Resource同步加载;
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public ResourceAssetProxy LoadResourceProxy(string path)
        {
            if (string.IsNullOrEmpty(path))
            {
                return(null);
            }
            ResourceAssetProxy proxy = PoolMgr.singleton.GetCsharpObject <ResourceAssetProxy>();

            proxy.Initialize(path);
            Object asset = Resources.Load(path);

            if (asset == null)
            {
                LogHelper.PrintError($"[ResourceMgr]LoadResourceProxy load asset:{path} failure.");
            }
            proxy.OnFinish(asset);
            return(proxy);
        }