コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        /// <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);
        }