Exemplo n.º 1
0
    public EffectObject(EffectCfg config, Transform root)
    {
        this.config     = config;
        this.EffectID   = config.ID;
        this.gameObject = new GameObject(config.ID.ToString());
        this.transform  = gameObject.transform;
        this.transform.SetParent(root);
        this.assetBundleName = string.Format(effectBundlePath, config.AssetName.ToLower());
        this.activelayer     = LayerManager.DefaultLayer;

        assetLoadOperation = AssetLoadManager.LoadAssetAsync(assetBundleName, config.AssetName, typeof(GameObject));
    }
Exemplo n.º 2
0
    public EffectObject(EffectCfg config, Transform root)
    {
        this.config     = config;
        this.EffectID   = config.ID;
        this.gameObject = new GameObject(config.ID.ToString());
        this.gameObject.SetActive(false);
        this.transform = gameObject.transform;
        this.transform.SetParent(root);
        this.assetBundlePath = string.Format("effects/{0}.bundle", config.AssetName.ToLower());

        LoadAsset();
    }
Exemplo n.º 3
0
    private void InitRuntimeData(EffectCfg row)
    {
        row.OnBeginPlayArray        = ConfigParseUtil.ParseIntArray(row.OnBeginPlay);
        row.OnEndPlayArray          = ConfigParseUtil.ParseIntArray(row.OnEndPlay);
        row.LocalPositionVec3       = ConfigParseUtil.ParseVec3(row.LocalPosition);
        row.LocalRotationVec3       = ConfigParseUtil.ParseVec3(row.LocalRotation);
        row.LocalRotationQuaternion = Quaternion.Euler(row.LocalRotationVec3);

        row.LocalScaleVec3 = ConfigParseUtil.ParseVec3(row.LocalScale);
        if (row.LocalScaleVec3 == Vector3.zero)
        {
            row.LocalScaleVec3 = Vector3.one;
        }
    }
Exemplo n.º 4
0
    private static EffectObject CreateEffectObject(EffectCfg config)
    {
        if (config == null)
        {
            return(null);
        }

        Profiler.BeginSample("new EffectObject");
        EffectObject effectObj = new EffectObject(config, Instance.transform);

        Profiler.EndSample();

        return(effectObj);
    }
Exemplo n.º 5
0
    private static EffectObject CreateEffectObject(int id)
    {
        EffectCfg config = EffectConfig.GetConfig(id);

        if (config == null)
        {
            Debug.LogErrorFormat("Failed to find config of effect {0}", id);
            return(null);
        }

        EffectObject effectObj = new EffectObject(config, Instance.transform);

        return(effectObj);
    }
Exemplo n.º 6
0
    private static EffectObject FetchEffectObject(int id)
    {
        // 检测特效限制
        EffectCfg config = effectConfigLoader.GetConfig(id);

        if (config == null)
        {
            DebugLogger.LogErrorFormat("[EffectManager]:Failed to find config of effect {0}", id);
            return(null);
        }

        if (config.Priority != (int)EffectPriority.High && unimportantEffectsCount >= s_maxEffectCount)
        {
            if (config.Priority == (int)EffectPriority.Meidum)
            {
                if (RemoveALowPriorityEffect() == false)
                {
                    return(null);
                }
            }
            else
            {
                // 达到同屏限制
                return(null);
            }
        }

        EffectObject effectObj = FetchFromPool(id);

        if (effectObj == null)
        {
            effectObj = CreateEffectObject(config);
        }


        if (config.Priority != (int)EffectPriority.High)
        {
            unimportantEffectsCount++;
        }

        return(effectObj);
    }
Exemplo n.º 7
0
 private void OnReadRow(EffectCfg row)
 {
     InitRuntimeData(row);
     m_data[row.ID] = row;
 }
Exemplo n.º 8
0
 private void OnReadRow(EffectCfg obj)
 {
     InitRuntimeData(obj);
     m_data[obj.ID] = obj;
 }