/// <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); }