Пример #1
0
        public override void Update()
        {
            if (_loadingState == ELoadingState.Loading)
            {
                if (_www == null)
                {
                    _loadingState = ELoadingState.LoadedFailed;
                }
                else if (_www.isDone)
                {
                    if (_www.error != null || _www.assetBundle == null)
                    {
                        _loadingState = ELoadingState.LoadedFailed;
                    }
                    else
                    {
                        _assetBundle = _www.assetBundle;
                        if (_assetBundle == null)
                        {
                            _loadingState = ELoadingState.LoadedFailed;
                        }
                        else
                        {
                            _loadingState = ELoadingState.WaitToCallback;
                        }
                    }
                }
            }
            else if (_loadingState == ELoadingState.WaitToCallback)
            {
                _loadingState = ELoadingState.Loaded;
#if UNITY_EDITOR
                //if (IsNeedToChangeShader)
                {
                    GameObject go = _assetBundle.mainAsset as GameObject;
                    if (go != null)
                    {
                        BundleManager.ChangeShader(go.transform);
                    }
                }
#endif
                OnLoadingComplete();
                if (_www != null)
                {
                    _www.Dispose();
                    _www = null;
                }
            }
            else if (_loadingState == ELoadingState.LoadedFailed)
            {
                OnLoadingFailed();
                if (_www != null)
                {
                    _www.Dispose();
                    _www = null;
                }
            }
        }