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