4using UnityEngine.EventSystems;
9public class ColorPalette : MonoBehaviour, IDragHandler, IEventSystemHandler, IPointerDownHandler, IInitializePotentialDragHandler
46 texture =
new Texture2D(width, height, TextureFormat.RGB24, mipChain:
false);
66 public void OnDrag(PointerEventData eventData)
74 return new Vector2(clampedLocalPosition.x /
paletteImage.rectTransform.rect.width, clampedLocalPosition.y /
paletteImage.rectTransform.rect.height);
79 ped.useDragThreshold =
false;
84 Vector3 vector =
paletteImage.gameObject.transform.InverseTransformPoint(position);
85 vector.x = Mathf.Clamp(vector.x, 0f,
paletteImage.rectTransform.rect.width);
86 vector.y = Mathf.Clamp(vector.y, 0f,
paletteImage.rectTransform.rect.height);
94 for (
int i = 0; i < width; i++)
96 for (
int num = width - 1; num > 0; num--)
103 paletteImage.texture =
texture;
113 marker.anchorMin = position;
114 marker.anchorMax = position;
120 for (
int i = 0; i <
texture.width; i++)
122 for (
int j = 0; j <
texture.width; j++)
124 int num = i * texture.width + j;
125 int num2 = i / 32 * 16 + j / 32;
126 array[num] = colors[num2];
131 paletteImage.texture =
texture;
136 marker.gameObject.SetActive(!value);
void OnDrag(PointerEventData eventData)
Action< Vector2 > ColorPicked
Vector2 GetClampedLocalPosition(Vector2 position)
void ShowEnlargedPixels(Color[] colors)
void SetMarkerPosition(Vector2 position)
void OnInitializePotentialDrag(PointerEventData ped)
void OnPointerDown(PointerEventData eventData)
void UpdateMarkerPosition(HSVColor hsv)
void SelectColor(HSVColor hsv)
void ShowDropperMarker(bool value)
void GeneratePaletteTexture(HSVColor hsv)
RectTransform dropperSelectionMarker
Vector2 GetNormalisedPointerPosition(Vector2 position)
static Color HSVtoRGB(HSVColor hsv)