/// <summary>
        /// 异步实例化资源。
        /// </summary>
        /// <param name="assetName">要实例化资源的名称。</param>
        /// <param name="instantiateAssetCallbacks">实例化资源回调函数集。</param>
        /// <param name="userData">用户自定义数据。</param>
        public void InstantiateAsset(string assetName, InstantiateAssetCallbacks instantiateAssetCallbacks, object userData)
        {
            if (instantiateAssetCallbacks == null)
            {
                throw new GameFrameworkException("Instantiate asset callbacks is invalid.");
            }

#if UNITY_EDITOR
            DateTime           startTime = DateTime.Now;
            UnityEngine.Object asset     = AssetDatabase.LoadMainAssetAtPath(assetName);
            if (asset != null)
            {
                UnityEngine.Object instance = Instantiate(asset);
                if (instance != null)
                {
                    if (instantiateAssetCallbacks.InstantiateAssetSuccessCallback != null)
                    {
                        instantiateAssetCallbacks.InstantiateAssetSuccessCallback(assetName, instance, (float)(DateTime.Now - startTime).TotalSeconds, userData);
                    }

                    return;
                }
            }

            if (instantiateAssetCallbacks.InstantiateAssetFailureCallback != null)
            {
                instantiateAssetCallbacks.InstantiateAssetFailureCallback(assetName, LoadResourceStatus.NotExist, "Can not instantiate this asset from asset database.", userData);
            }
#endif
        }
예제 #2
0
 /// <summary>
 /// 初始化界面管理器的新实例。
 /// </summary>
 public UIManager()
 {
     m_UIGroups     = new Dictionary <string, UIGroup>();
     m_RecycleQueue = new LinkedList <RecycleNode>();
     m_InstantiateAssetCallbacks = new InstantiateAssetCallbacks(InstantiateUIFormSuccessCallback, InstantiateUIFormFailureCallback, InstantiateUIFormUpdateCallback, InstantiateUIFormDependencyAssetCallback);
     m_ObjectPoolManager         = null;
     m_ResourceManager           = null;
     m_InstancePool = null;
     m_UIFormHelper = null;
     m_OpenUIFormSuccessEventHandler         = null;
     m_OpenUIFormFailureEventHandler         = null;
     m_OpenUIFormUpdateEventHandler          = null;
     m_OpenUIFormDependencyAssetEventHandler = null;
     m_CloseUIFormCompleteEventHandler       = null;
 }
예제 #3
0
 /// <summary>
 /// 初始化实体管理器的新实例。
 /// </summary>
 public EntityManager()
 {
     m_EntityInfos                           = new Dictionary <int, EntityInfo>();
     m_EntityGroups                          = new Dictionary <string, EntityGroup>();
     m_EntitiesBeingLoaded                   = new HashSet <int>();
     m_EntitiesToReleaseOnLoad               = new HashSet <int>();
     m_RecycleQueue                          = new LinkedList <RecycleNode>();
     m_InstantiateAssetCallbacks             = new InstantiateAssetCallbacks(InstantiateEntitySuccessCallback, InstantiateEntityFailureCallback, InstantiateEntityUpdateCallback, InstantiateEntityDependencyAssetCallback);
     m_ObjectPoolManager                     = null;
     m_ResourceManager                       = null;
     m_EntityHelper                          = null;
     m_ShowEntitySuccessEventHandler         = null;
     m_ShowEntityFailureEventHandler         = null;
     m_ShowEntityUpdateEventHandler          = null;
     m_ShowEntityDependencyAssetEventHandler = null;
     m_HideEntityCompleteEventHandler        = null;
 }
 public InstantiateAssetTask(string assetName, ResourceInfo resourceInfo, string[] dependencyAssetNames, string[] scatteredDependencyAssetNames, string resourceChildName, InstantiateAssetCallbacks instantiateAssetCallbacks, object userData)
     : base(assetName, resourceInfo, dependencyAssetNames, scatteredDependencyAssetNames, resourceChildName, userData)
 {
     m_InstantiateAssetCallbacks = instantiateAssetCallbacks;
 }
예제 #5
0
 /// <summary>
 /// 异步实例化资源。
 /// </summary>
 /// <param name="assetName">要实例化资源的名称。</param>
 /// <param name="instantiateAssetCallbacks">实例化资源回调函数集。</param>
 /// <param name="userData">用户自定义数据。</param>
 public void InstantiateAsset(string assetName, InstantiateAssetCallbacks instantiateAssetCallbacks, object userData)
 {
     m_ResourceManager.InstantiateAsset(assetName, instantiateAssetCallbacks, userData);
 }
예제 #6
0
 /// <summary>
 /// 异步实例化资源。
 /// </summary>
 /// <param name="assetName">要实例化资源的名称。</param>
 /// <param name="instantiateAssetCallbacks">实例化资源回调函数集。</param>
 public void InstantiateAsset(string assetName, InstantiateAssetCallbacks instantiateAssetCallbacks)
 {
     m_ResourceManager.InstantiateAsset(assetName, instantiateAssetCallbacks);
 }
 /// <summary>
 /// 异步实例化资源。
 /// </summary>
 /// <param name="assetName">要实例化资源的名称。</param>
 /// <param name="instantiateAssetCallbacks">实例化资源回调函数集。</param>
 public void InstantiateAsset(string assetName, InstantiateAssetCallbacks instantiateAssetCallbacks)
 {
     InstantiateAsset(assetName, instantiateAssetCallbacks, null);
 }