RawImageをクリックした位置の色が知りたいって事ですかね?
それなら該当RawImage
にIPointerClickHandler
をアタッチする方法が一番楽で軽いと思います。
具体的には下記のようなコードになります。
C#
1using UnityEngine;
2using UnityEngine.EventSystems;
3using UnityEngine.UI;
4
5/// <summary>
6/// RawImageをクリックした位置のカラーをDebug.Logに表示するサンプル
7/// カラーを収集したいRawImageにアタッチ
8/// </summary>
9[RequireComponent(typeof(RawImage))]
10public sealed class ColorPickTest : MonoBehaviour, IPointerClickHandler
11{
12 [SerializeField] Camera camera;
13 [SerializeField] RawImage rawImage;
14
15 public void OnPointerClick(PointerEventData eventData)
16 {
17 var tex = (Texture2D) rawImage.texture;
18 var targetTransform = rawImage.rectTransform;
19 RectTransformUtility.ScreenPointToLocalPointInRectangle(targetTransform, eventData.position, camera, out Vector2 localPoint);
20 var rect = targetTransform.rect;
21 var normalize = (rect.size * targetTransform.pivot + localPoint) / rect.size;
22 var color = tex.GetPixelBilinear(normalize.x, normalize.y);
23 Debug.Log(color);
24 }
25}
サンプルコード
取得から表示までのサンプルコードを書いてみました。
よければ見てみてください。
ColorPicker.unitypackage
ダンロード期限:2022年8月21日(日)
https://1.gigafile.nu/0821-b95f68bbe5e5c7dc0e25963885a9d24ed
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。