A modular, performance-optimized color picker for Unity with full RGBA, HSV, and Hex support.
- Supports RGBA, HSV, and Hex input
- Modular prefab — easily reusable across projects
- Performance optimized for smooth interaction
- Fully customizable UI (remove or modify elements safely)
- Displays previous color
- Built-in performance settings
- Download
Color_Picker.unitypackage - Import it into your Unity project
-
Copy the
Color Picker/folder into your project -
Drag the prefab into your Canvas
-
Assign:
- Canvas
- Graphic Raycaster
Color current = colorPicker.CurrentColor;colorPicker.SetColor(Color.red);colorPicker.SetColorHSV(h, s, v);colorPicker.SetColorHex("#FF0000");colorPicker.OnColorChanged += (color) =>
{
Debug.Log(color);
};- Built as a single script + prefab system for simplicity
- Uses a modular structure so components can be removed safely
- Designed for plug-and-play integration
Early versions generated textures dynamically for UI elements, which caused major slowdowns (~20 FPS when interacting).
Optimizations include:
- Pre-generating static textures at startup
- Reusing textures instead of recalculating them
- Using Unity’s UI system for dynamic color updates
Result: smooth, responsive interaction
- Handling Canvas Scaler*issues for accurate drag behavior
- Implementing Hex and Color conversion
- Balancing visual accuracy vs performance
- Radial Hue Sliders
Assets/
└── Color Picker/
├── Scripts/
├── Prefabs/
├── Graphics/
└── Demo/
This project is licensed under the MIT License.

