クリックした個所の色を取得したいのですが、ググってもいまいちやり方が分からず困っております。
お手数をおかけしますが、ご教授いただければ幸いです。
C#
1 void Update() 2 { 3 if (Input.GetMouseButtonDown(0)) 4 { 5 x = Input.mousePosition.x; 6 y = Input.mousePosition.y; 7 Debug.Log("左クリック x " + x + " y " + y ); 8 //GetColor(x,y); ここでxyを渡して色を取得するメソッドを呼びたい 9 } 10}
■追記1回目
bitmapにして取得する方法があるようなのですが、
using System.Drawingでbitmapを使おうとすると、あいまいな定義で弾かれてしまいました。
名前空間の記述で対応しようと思ったのですが、うまくいきませんでした。
・https://www.weblio.jp/content/Bitmap.GetPixel+%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89
・https://lets-csharp.com/get-color-click-point/
■追記2回目
以下の記事を参考にしましたが、うまくいきませんでした。
クリックしても何も反応が無い状況です。エラー表示はありません。
https://qiita.com/OKsaiyowa/items/3664afd9df826b979243
■追記3回目
以下の記事をもとに進めたところ、色を取れていそうな挙動は得られたのですが、
クリックした個所とは異なる色が取得されてしまいました。(黒のはずなのに白、黒なのに赤など)
タップしている画素の色を取得する
https://tsubakit1.hateblo.jp/entry/20131203/1386000440
色のフォーマットや位置の変換あたりがおかしいのでしょうか。
C#
1 //左クリックを受け付ける 2 if (Input.GetMouseButtonDown(0)) 3 { 4 x = Input.mousePosition.x; 5 y = Input.mousePosition.y; 6 Debug.Log("左クリック x " + x + " y " + y); 7 8 tex = new Texture2D(1, 1, TextureFormat.RGB24, false); 9 10 tex.ReadPixels(new Rect(x, y, 1, 1), 0, 0); 11 color = tex.GetPixel(0, 0); 12 Debug.Log(color); 13 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。