Exemple #1
0
        public GradientObject[] MixAndMutateArrays(GradientObject[] arr1, GradientObject[] arr2, int lenght)
        {
            GradientObject[] newArr = new GradientObject[lenght];
            int l1 = arr1.Length;
            int l2 = arr2.Length;

            for (int i = 0; i < lenght; i++)
            {
                if (i < l1 && i < l2)
                {
                    newArr[i] = GetChance() ? GenerateRandomGradient() : MixGradients(arr1[i], arr2[i]);
                }
                else
                {
                    if (i < l1)
                    {
                        newArr[i] = GetChance() ? GenerateRandomGradient() : arr1[i];
                    }
                    else if (i < l2)
                    {
                        newArr[i] = GetChance() ? GenerateRandomGradient() : arr2[i];
                    }
                    else
                    {
                        newArr[i] = GenerateRandomGradient();
                    }
                }
            }
            return(newArr);
        }
Exemple #2
0
        public GradientSlotControlView(GradientInputMaterialSlot slot)
        {
            m_Slot = slot;
            styleSheets.Add(Resources.Load <StyleSheet>("Styles/Controls/GradientSlotControlView"));

            m_GradientObject          = ScriptableObject.CreateInstance <GradientObject>();
            m_GradientObject.gradient = new Gradient();
            m_SerializedObject        = new SerializedObject(m_GradientObject);

            m_GradientObject.gradient.SetKeys(m_Slot.value.colorKeys, m_Slot.value.alphaKeys);
            m_GradientObject.gradient.mode = m_Slot.value.mode;

            var gradientField = new GradientField()
            {
                value = m_GradientObject.gradient
            };

            gradientField.RegisterValueChangedCallback(OnValueChanged);
            Add(gradientField);
        }
        public GradientSlotControlView(GradientInputMaterialSlot slot)
        {
            m_Slot = slot;
            AddStyleSheetPath("Styles/Controls/GradientSlotControlView");

            m_GradientObject          = ScriptableObject.CreateInstance <GradientObject>();
            m_GradientObject.gradient = new Gradient();
            m_SerializedObject        = new SerializedObject(m_GradientObject);

            m_GradientObject.gradient.SetKeys(m_Slot.value.colorKeys, m_Slot.value.alphaKeys);
            m_GradientObject.gradient.mode = m_Slot.value.mode;

            var gradientField = new GradientField()
            {
                value = m_GradientObject.gradient
            };

            gradientField.OnValueChanged(OnValueChanged);
            Add(gradientField);
        }
Exemple #4
0
 public GradientObject MixGradients(GradientObject c1, GradientObject c2)
 {
     return(new GradientObject(Color.Lerp(c1.color1, c2.color1, 0.5f), Color.Lerp(c1.color2, c2.color2, 0.5f)));
 }