Ejemplo n.º 1
0
    private void DoAfterSetAction(AfterSetAction action)
    {
        switch (action)
        {
        case AfterSetAction.Clear:
            ClearAllKeywords();
            break;

        case AfterSetAction.CopyMaterial:
            currMaterial.CopyPropertiesFromMaterial(prevMaterial);
            break;
        }
    }
Ejemplo n.º 2
0
    private void SetMaterial(AfterSetAction action)
    {
        Shader allIn1Shader = Resources.Load("AllIn1SpriteShader", typeof(Shader)) as Shader;

        if (!Application.isPlaying && Application.isEditor && allIn1Shader != null)
        {
            bool           rendererExists = false;
            SpriteRenderer sr             = GetComponent <SpriteRenderer>();
            if (sr != null)
            {
                rendererExists = true;
                prevMaterial   = new Material(GetComponent <Renderer>().sharedMaterial);
                currMaterial   = new Material(allIn1Shader);
                GetComponent <Renderer>().sharedMaterial           = currMaterial;
                GetComponent <Renderer>().sharedMaterial.hideFlags = HideFlags.None;
                matAssigned = true;
                DoAfterSetAction(action);
            }
            else
            {
                Image img = GetComponent <Image>();
                if (img != null)
                {
                    rendererExists         = true;
                    prevMaterial           = new Material(img.material);
                    currMaterial           = new Material(allIn1Shader);
                    img.material           = currMaterial;
                    img.material.hideFlags = HideFlags.None;
                    matAssigned            = true;
                    DoAfterSetAction(action);
                }
            }
            if (!rendererExists)
            {
                MissingRenderer();
                return;
            }
            else
            {
                SetSceneDirty();
            }
        }
        else if (allIn1Shader == null)
        {
            //Debug.LogError("Make sure the AllIn1SpriteShader file is inside the Resource folder!");
        }
    }
Ejemplo n.º 3
0
    private void SetMaterial(AfterSetAction action, bool getShaderTypeFromPrefs, string shaderName)
    {
        Shader allIn1Shader = Resources.Load(shaderName, typeof(Shader)) as Shader;

        if (getShaderTypeFromPrefs)
        {
            int shaderVariant = PlayerPrefs.GetInt("allIn1DefaultShader");
            if (shaderVariant == 1)
            {
                allIn1Shader = Resources.Load("AllIn1SpriteShaderScaledTime", typeof(Shader)) as Shader;
            }
            else if (shaderVariant == 2)
            {
                allIn1Shader = Resources.Load("AllIn1SpriteShaderUiMask", typeof(Shader)) as Shader;
            }
            else if (shaderVariant == 3)
            {
                allIn1Shader = Resources.Load("AllIn1Urp2dRenderer", typeof(Shader)) as Shader;
            }
        }

        if (!Application.isPlaying && Application.isEditor && allIn1Shader != null)
        {
            bool     rendererExists = false;
            Renderer sr             = GetComponent <Renderer>();
            if (sr != null)
            {
                rendererExists = true;
                prevMaterial   = new Material(GetComponent <Renderer>().sharedMaterial);
                currMaterial   = new Material(allIn1Shader);
                GetComponent <Renderer>().sharedMaterial           = currMaterial;
                GetComponent <Renderer>().sharedMaterial.hideFlags = HideFlags.None;
                matAssigned = true;
                DoAfterSetAction(action);
            }
            else
            {
                Image img = GetComponent <Image>();
                if (img != null)
                {
                    rendererExists         = true;
                    prevMaterial           = new Material(img.material);
                    currMaterial           = new Material(allIn1Shader);
                    img.material           = currMaterial;
                    img.material.hideFlags = HideFlags.None;
                    matAssigned            = true;
                    DoAfterSetAction(action);
                }
            }
            if (!rendererExists)
            {
                MissingRenderer();
                return;
            }
            else
            {
                SetSceneDirty();
            }
        }
        else if (allIn1Shader == null)
        {
            Debug.LogError("Make sure the AllIn1SpriteShader shader variants are inside the Resource folder!");
        }
    }