コード例 #1
0
        private void Start()
        {
            BaseComponent baseComponent = GameEntry.GetComponent <BaseComponent>();

            if (baseComponent == null)
            {
                Log.Fatal("Base component is invalid.");
                return;
            }

            m_EventComponent = GameEntry.GetComponent <EventComponent>();
            if (m_EventComponent == null)
            {
                Log.Fatal("Event component is invalid.");
                return;
            }

            m_EditorResourceMode = baseComponent.EditorResourceMode;
            m_ResourceManager    = m_EditorResourceMode ? baseComponent.EditorResourceHelper : GameFrameworkEntry.GetModule <IResourceManager>();
            if (m_ResourceManager == null)
            {
                Log.Fatal("Resource manager is invalid.");
                return;
            }

            m_ResourceManager.ResourceUpdateStart   += OnResourceUpdateStart;
            m_ResourceManager.ResourceUpdateChanged += OnResourceUpdateChanged;
            m_ResourceManager.ResourceUpdateSuccess += OnResourceUpdateSuccess;
            m_ResourceManager.ResourceUpdateFailure += OnResourceUpdateFailure;

            m_ResourceManager.SetReadOnlyPath(Application.streamingAssetsPath);
            if (m_ReadWritePathType == ReadWritePathType.TemporaryCache)
            {
                m_ResourceManager.SetReadWritePath(Application.temporaryCachePath);
            }
            else
            {
                if (m_ReadWritePathType == ReadWritePathType.Unspecified)
                {
                    m_ReadWritePathType = ReadWritePathType.PersistentData;
                }

                m_ResourceManager.SetReadWritePath(Application.persistentDataPath);
            }

            if (m_EditorResourceMode)
            {
                return;
            }

            SetResourceMode(m_ResourceMode);
            m_ResourceManager.SetDownloadManager(GameFrameworkEntry.GetModule <IDownloadManager>());
            m_ResourceManager.SetObjectPoolManager(GameFrameworkEntry.GetModule <IObjectPoolManager>());
            m_ResourceManager.AssetAutoReleaseInterval    = m_AssetAutoReleaseInterval;
            m_ResourceManager.AssetCapacity               = m_AssetCapacity;
            m_ResourceManager.AssetExpireTime             = m_AssetExpireTime;
            m_ResourceManager.AssetPriority               = m_AssetPriority;
            m_ResourceManager.ResourceAutoReleaseInterval = m_ResourceAutoReleaseInterval;
            m_ResourceManager.ResourceCapacity            = m_ResourceCapacity;
            m_ResourceManager.ResourceExpireTime          = m_ResourceExpireTime;
            m_ResourceManager.ResourcePriority            = m_ResourcePriority;
            if (m_ResourceMode == ResourceMode.Updatable)
            {
                m_ResourceManager.UpdatePrefixUri             = m_UpdatePrefixUri;
                m_ResourceManager.GenerateReadWriteListLength = m_GenerateReadWriteListLength;
                m_ResourceManager.UpdateRetryCount            = m_UpdateRetryCount;
            }

            m_ResourceHelper = Helper.CreateHelper(m_ResourceHelperTypeName, m_CustomResourceHelper);
            if (m_ResourceHelper == null)
            {
                Log.Error("Can not create resource helper.");
                return;
            }

            m_ResourceHelper.name = "Resource Helper";
            Transform transform = m_ResourceHelper.transform;

            transform.SetParent(this.transform);
            transform.localScale = Vector3.one;

            m_ResourceManager.SetResourceHelper(m_ResourceHelper);

            if (m_InstanceRoot == null)
            {
                m_InstanceRoot = (new GameObject("Load Resource Agent Instances")).transform;
                m_InstanceRoot.SetParent(gameObject.transform);
                m_InstanceRoot.localScale = Vector3.one;
            }

            for (int i = 0; i < m_LoadResourceAgentHelperCount; i++)
            {
                AddLoadResourceAgentHelper(i);
            }
        }
コード例 #2
0
        private void Start()
        {
            _baseComponent = GameEntry.GetComponent <BaseComponent>();
            if (_baseComponent == null)
            {
                Log.Fatal("Base component is invalid.");
                return;
            }
            _eventComponent = GameEntry.GetComponent <EventComponent>();
            if (_eventComponent == null)
            {
                Log.Fatal("Event component is invalid.");
                return;
            }

            m_EditorResourceMode = _baseComponent.EditorResourceMode;
            m_ResourceManager    = m_EditorResourceMode ? _baseComponent.EditorResourceHelper : GameFrameworkEntry.GetModule <IResourceManager>();
            if (m_ResourceManager == null)
            {
                Log.Fatal("Resource manager is invalid.");
                return;
            }
            m_ResourceManager.ResourceInitComplete += OnResourceInitComplete;

            m_ResourceManager.SetReadOnlyPath(Application.streamingAssetsPath);
            if (m_ReadWritePathType == ReadWritePathType.TemporaryCache)
            {
                m_ResourceManager.SetReadWritePath(Application.temporaryCachePath);
            }
            else
            {
                if (m_ReadWritePathType == ReadWritePathType.Unspecified)
                {
                    m_ReadWritePathType = ReadWritePathType.PersistentData;
                }

                m_ResourceManager.SetReadWritePath(Application.persistentDataPath);
            }

            m_ResourceManager.LoadAssetsComplete += _loadAssetsComplete;

            if (m_EditorResourceMode)
            {
                return;
            }

            m_ResourceManager.SetObjectPoolManager(GameFrameworkEntry.GetModule <IObjectPoolManager>());
            m_ResourceManager.AssetAutoReleaseInterval    = m_AssetAutoReleaseInterval;
            m_ResourceManager.AssetCapacity               = m_AssetCapacity;
            m_ResourceManager.AssetExpireTime             = m_AssetExpireTime;
            m_ResourceManager.AssetPriority               = m_AssetPriority;
            m_ResourceManager.ResourceAutoReleaseInterval = m_ResourceAutoReleaseInterval;
            m_ResourceManager.ResourceCapacity            = m_ResourceCapacity;
            m_ResourceManager.ResourceExpireTime          = m_ResourceExpireTime;
            m_ResourceManager.ResourcePriority            = m_ResourcePriority;
            m_ResourceHelper = Helper.CreateHelper(m_ResourceHelperTypeName, m_CustomResourceHelper);
            if (m_ResourceHelper == null)
            {
                Log.Error("Can not create resource helper.");
                return;
            }

            m_ResourceHelper.name = string.Format("Resource Helper");
            Transform transform = m_ResourceHelper.transform;

            transform.SetParent(this.transform);
            transform.localScale = Vector3.one;

            m_ResourceManager.SetResourceHelper(m_ResourceHelper);

            if (m_InstanceRoot == null)
            {
                m_InstanceRoot = (new GameObject("Load Resource Agent Instances")).transform;
                m_InstanceRoot.SetParent(gameObject.transform);
                m_InstanceRoot.localScale = Vector3.one;
            }

            for (int i = 0; i < m_LoadResourceAgentHelperCount; i++)
            {
                AddLoadResourceAgentHelper(i);
            }
        }
コード例 #3
0
        private void Start()
        {
            BaseComponent baseComponent = GameEntry.GetComponent <BaseComponent>();

            if (baseComponent)
            {
                Log.Fatal();
                return;
            }

            m_EventComponent = GameEntry.GetComponent <EventComponent>();

            m_ResourceManager = m_EditorResourceMode ? baseComponent.EditorResourceHelper : GameFrameworkEntry.GetModule <IResourceManager>();

            m_ResourceManager.ResourceInitComplete      += OnResourceInitComplete;
            m_ResourceManager.VersionListUpdateSuccess  += OnVersionListUpdateSuccess;
            m_ResourceManager.ResouceCheckComplete      += OnResourceCheckComplete;
            m_ResourceManager.ResourceUpdaterStart      += OnResourceUpdateStart;
            m_ResourceManager.ResourceUpdateSuccess     += OnResourceUpdateSuccess;
            m_ResourceManager.ResourceUpdateAllComplete += OnresourceUpdateAllComplete;

            m_ResourceManager.SetReadOnlyPath(Application.streamingAssetsPath);
            if (m_ReadWritePathType == ReadWritePathType.TemporaryCache)
            {
                m_ResourceManager.SetReadWritePath(Application.temporaryCachePath);
            }
            else
            {
                if (m_ReadWritePathType == m_ReadWritePathType.Unspecified)
                {
                    m_ReadWritePathType = m_ReadWritePathType.PersistentData;
                }
                m_ResourceManager.SetReadWritePath(Application.persistentDataPath);
            }

            SetResourceMode(m_ResourceMode);
            m_ResourceManager.SetDownloadManager(GameFrameworkEntry.GetModule <IDownloadManager>());
            m_ResourceManager.SetObjectPoolManager(GameFrameworkEntry.GetModule <IObjectPoolManager>());
            m_ResourceManager.AssetAutoReleaseInterval = m_AssetAutoReleaseInterval;
            m_ResourceManager.AssetCapacity            = m_AssetCapacity;
            m_ResourceManager.AssetPriority            = m_AssetPriority;
            m_ResourceManager.ResourceCapacity         = m_ResourceCapacity;
            m_ResourceManager.ResourceExpireTime       = m_ResourceExpireTime;
            if (m_ResourceMode == ResourceMode.Updateable)
            {
                m_ResourceManager.UpdatePrefixUri  = m_UpdatePrefixUri;
                m_ResourceManager.UpdateRetryCount = m_UpdateRetryCount;
            }

            m_ResourceHelper      = Helper.CreateHelper(m_ResourceHelperTypeName, m_CustomResourceHelper);
            m_ResourceHelper.name = string.Format("Resource Helper");
            Transform transform = m_ResourceHelper.transform;

            transform.SetParent(this.transform);
            transform.localScale = Vector3.one;

            m_ResourceManager.SetResourceHelper(m_ResourceHelper);

            if (m_InstanceRoot == null)
            {
                m_InstanceRoot = (new GameObject("Load resource Agent Instance")).transform;
                m_InstanceRoot.SetParent(GameObject.transform);
                m_InstanceRoot.localScale = Vector3.one;
            }

            for (int i = 0; i < m_LoadResourceAgentHelperCount; i++)
            {
                AddLoadResourceAgentHelper(i);
            }
        }
コード例 #4
0
        private void Start()
        {
            //基础组件
            BaseComponent baseComponent = GameEntry.GetComponent <BaseComponent>();

            if (baseComponent == null)
            {
                Log.Fatal("[ResourceComponent.Start] Base component is invalid -> baseComponent == null.");
                return;
            }
            //事件组件
            m_EventComponent = GameEntry.GetComponent <EventComponent>();
            if (m_EventComponent == null)
            {
                Log.Fatal("[ResourceComponent.Start] Event component is invalid -> m_EventComponent == null.");
                return;
            }
            //资源管理器

            ResourceManager = baseComponent.ResourceManager;
            if (ResourceManager == null)
            {
                Log.Fatal("[ResourceComponent.Start] Resource manager is invalid -> m_ResourceManager == null.");
                return;
            }

            //绑定事件
            ResourceManager.ResourceUpdateStart   += OnResourceUpdateStart;
            ResourceManager.ResourceUpdateChanged += OnResourceUpdateChanged;
            ResourceManager.ResourceUpdateSuccess += OnResourceUpdateSuccess;
            ResourceManager.ResourceUpdateFailure += OnResourceUpdateFailure;

            ResourceManager.SetReadOnlyPath(Application.streamingAssetsPath); //设置只读路径
            if (m_ReadWritePathType == ReadWritePathType.TemporaryCache)
            {
                ResourceManager.SetReadWritePath(Application.temporaryCachePath);
            }
            else
            {
                if (m_ReadWritePathType == ReadWritePathType.Unspecified)
                {
                    m_ReadWritePathType = ReadWritePathType.PersistentData;
                }
                ResourceManager.SetReadWritePath(Application.persistentDataPath);
            }

#if UNITY_EDITOR
            m_IsEditorResourceMode = baseComponent.IsEditorResourceMode;
            if (m_IsEditorResourceMode) //编辑器模式直接返回即可
            {
                return;
            }
#endif

            SetResourceMode(m_ResourceMode);
            ResourceManager.SetDownloadManager(GameFrameworkEntry.GetModule <IDownloadManager>());     //设置下载管理器
            ResourceManager.SetObjectPoolManager(GameFrameworkEntry.GetModule <IObjectPoolManager>()); //设置对象池管理器
            ResourceManager.AssetAutoReleaseInterval    = m_AssetAutoReleaseInterval;
            ResourceManager.AssetCapacity               = m_AssetCapacity;
            ResourceManager.AssetExpireTime             = m_AssetExpireTime;
            ResourceManager.AssetPriority               = m_AssetPriority;
            ResourceManager.ResourceAutoReleaseInterval = m_ResourceAutoReleaseInterval;
            ResourceManager.ResourceCapacity            = m_ResourceCapacity;
            ResourceManager.ResourceExpireTime          = m_ResourceExpireTime;
            ResourceManager.ResourcePriority            = m_ResourcePriority;

            if (m_ResourceMode == ResourceMode.Updatable)
            {
                ResourceManager.UpdatePrefixUri             = m_UpdatePrefixUri;
                ResourceManager.UpdateFileCacheLength       = m_UpdateFileCacheLength;
                ResourceManager.GenerateReadWriteListLength = m_GenerateReadWriteListLength;
                ResourceManager.UpdateRetryCount            = m_UpdateRetryCount;
            }

            //资源辅助器
            m_ResourceHelper = Helper.CreateHelper(m_ResourceHelperTypeName, m_CustomResourceHelper);
            if (m_ResourceHelper == null)
            {
                Log.Error("[ResourceComponent.Start] Can not create resource helper -> m_ResourceHelper == null.");
                return;
            }
            m_ResourceHelper.name = "Resource Helper";
            Transform trans = m_ResourceHelper.transform;
            trans.SetParent(transform);
            transform.localScale = Vector3.one;
            ResourceManager.SetResourceHelper(m_ResourceHelper);

            if (m_InstanceRoot == null)
            {
                m_InstanceRoot = new GameObject("Load Resource Agent Instances").transform;
                m_InstanceRoot.SetParent(transform);
                m_InstanceRoot.localScale = Vector3.one;
            }

            for (int i = 0; i < m_LoadResourceAgentHelperCount; i++)
            {
                AddLoadResourceAgentHelper(i);
            }
        }