示例#1
0
    /// <summary>
    /// Constrói o sprite e a cor para a máscara de desenho de acordo com o brush, a cor e
    /// a ferramenta selecionados na UI pelo usuário.
    /// </summary>
    /// <param name="sprite">Parâmetro de saída que receberá o Sprite da máscara produzido.</param>
    /// <param name="color">Parâmetro de saída que receberá a cor para ser utilizada com o Sprite.</param>
    /// <returns>Verdadeiro se tudo correu bem, falso caso algum erro ocorreu (por exemplo, se
    /// um parâmetro da UI estiver errado por algum motivo). No caso de erros, a descrição
    /// é exibida no console.</returns>
    private bool buildMask(out Sprite sprite, out Color color)
    {
        sprite = null;
        color  = Color.white;

        Tools   tools   = GetComponent <Tools>();
        Brushes brushes = GetComponent <Brushes>();

        // Obtém o sprite da máscara a ser usado de acordo com o brush selecionado
        int ind = brushes.validButtons().IndexOf(brushes.selected);

        if (ind >= 0 && ind < masksPencil.Length && ind < masksPaintbrush.Length)
        {
            sprite = (tools.selected == "paintbrush" ? masksPaintbrush[ind] : masksPencil[ind]);
        }
        else
        {
            Debug.LogError("Brush inválido: " + brushes.selected);
            return(false);
        }

        // Define a cor da máscara (se a ferramenta for a borracha, a cor é sempre branca)
        if (tools.selected != "eraser")
        {
            Colors colors = GetComponent <Colors>();
            try
            {
                color = (Color)typeof(Color).GetProperty(colors.selected).GetValue(null, null);
            }
            catch
            {
                sprite = null;
                Debug.LogError("Brush inválido: " + brushes.selected);
                return(false);
            }
        }

        return(true);
    }