/// <summary> /// 特效的初始化 /// </summary> /// <param name="effectPath"></param> /// <param name="poolGroup"></param> public void Initialize(string effectPath, string poolGroup = "", OnEffectLoaded OnEffectLoaded = null, System.Object usedata = null) { m_OnEffectLoaded += OnEffectLoaded; this.usedata = usedata; m_AssetName = effectPath; m_Status = EffectStatus.Playing; m_EffectID = EffectID(); MyName = "EffectController_" + m_AssetName + "_" + m_EffectID; name = MyName; LoadData d = new LoadData(); d.effectID = m_EffectID; d.assetName = m_AssetName; if (!string.IsNullOrEmpty(m_AssetName) && effectPath != "None") { m_AssetLoadHandler = AssetUtil.LoadAssetAsync(effectPath, OnEffectLoadComplete, Loader.AssetLoaderPriority.Default, null, d); } }
/// <summary> /// 进行特效的预加载,并创建缓存池 /// </summary> /// <param name="poolData"></param> //public void PreloadEffect(PoolData poolData) //{ // PoolManager.GetInstance().CreateGameObjectPool(poolData); //} // public void PreloadEffect(string spawnName, string assetPath, int preloadCount, OnPoolPreloadComplete callback) // { // PoolData poolData = new PoolData() // { // spawnName = spawnName, // assetPath = assetPath, // preloadTotalAmount = preloadCount, // preloadCompleteCallback = callback, // }; // PreloadEffect(poolData); // } /// <summary> /// 获取指定的特效,并创建其对应的缓存池, 特效释放后会被回收到池中 /// </summary> /// <param name="spawnName"></param> /// <param name="assetPath"></param> /// <param name="isAutoRelease"></param> /// <returns></returns> public EffectController CreateEffect(string assetPath, string spawnName = "", OnEffectLoaded OnEffectLoaded = null, System.Object usedata = null) { EffectController effectController = effectControllerPool.GetComponentItem <EffectController>(); effectController.CachedTransform.SetParent(rootTransform); effectController.CachedTransform.localPosition = Vector3.zero; effectController.CachedTransform.localRotation = Quaternion.identity; effectController.CachedTransform.localScale = Vector3.one; effectController.Initialize(assetPath, spawnName, OnEffectLoaded, usedata); return(effectController); }