public void Setup(SerializedProperty property) { m_property = property; modeProperty = property.FindPropertyRelative("m_mode"); colorArrayProperty = property.FindPropertyRelative("m_serializedColorKeys"); alphaArrayProperty = property.FindPropertyRelative("m_serializedAlphaKeys"); editMode = EditMode.color; selectedItem = 0; selectedProperty = colorArrayProperty.GetArrayElementAtIndex(0); gradientTexture = new Texture2D(400, 1); gradientTexture.wrapMode = TextureWrapMode.Clamp; currentGradient = GradientFieldDrawer.GenerateGradient(property); GradientFieldDrawer.SetGradientToTexture(currentGradient, gradientTexture); bgTexture = GradientFieldDrawer.GenerateInspectorBackground(30, 2); alphaHandle = LoadIconFromRelativePath("/Resources/GradientAlphaKey.png"); colorHandle = LoadIconFromRelativePath("/Resources/GradientColorKey.png"); alphaHandleHighlight = LoadIconFromRelativePath("/Resources/GradientAlphaKey.Highlight.png"); colorHandleHighlight = LoadIconFromRelativePath("/Resources/GradientColorKey.Highlight.png"); }
void Save() { GradientFieldDrawer.ResetGradient(); m_property.serializedObject.ApplyModifiedProperties(); int excludeAlpha = -1; int excludeColor = -1; if (isDraggingToRemove) { excludeAlpha = editMode == EditMode.alpha ? selectedItem : -1; excludeColor = editMode == EditMode.color ? selectedItem : -1; } currentGradient = GradientFieldDrawer.GenerateGradient(m_property, excludeColor, excludeAlpha); GradientFieldDrawer.SetGradientToTexture(currentGradient, gradientTexture); Repaint(); }