Example #1
0
    public IPostEffect GetOrCreateEffect(EPostEffectType type)
    {
        var idx = (int)type;

        if (idx < 0 || idx >= MAX_EFFECT_COUNT)
        {
            Debug.LogError("EPostEffectType out of range" + type.ToString());
            return(null);
        }

        IPostEffect comp = null;

        if (_allEffects[idx] == null)
        {
            switch (type)
            {
            case EPostEffectType.RadialBlur:
                comp = _mainCamera.GetOrAddComponent <PostEffectRadialBlur>();
                break;

            default:
                break;
            }

            comp.OnInstance();
            if (comp.shader == null)
            {
                Debug.LogError("Can not find PostEffect shader " + type.ToString());
                return(null);
            }

            _allEffects[idx] = comp;
        }

        return(_allEffects[idx]);
    }