UnityでCanvasUIで生成しているImageの解析をしています。
1ドットずつ参照して、色がある部分の取得まではできたのですが
上下がおそらく反転されてしまっております。
テクスチャの仕様をよく理解できていないのかもですが、
正常に出力する方法はないでしょうか。
配列を反転すればそれっぽいものができそうなのですが、
何故こうなるのか理解できていないため、アドバイス頂けないでしょうか。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6/* 7UI-Imageを配置、配置したものにSpriteを設定 8UnityException: Texture '*******' is not readable, the texture memory can not be accessed from scripts. You can make the texture readable in the Texture Import Settings. 9・「Texture Type」を「Advanced」に 10・「Read/Write Enabled」にチェックを入れる 11・「Apply」を押して変更を適用 12*/ 13 14public class DotsaAlysis : MonoBehaviour { 15 16 public Image imageDots; 17 18 // Start is called before the first frame update 19 void Start() { 20 21 Texture2D texture = imageDots.sprite.texture; 22 Color[] inputColors = texture.GetPixels(); 23 24 string text = ""; 25 26 for (int y = 0; y < texture.height; y++) { 27 for (int x = 0; x < texture.width; x++){ 28 var color = inputColors[(texture.width * y) + x]; 29 // 画像がなければ0,あれば1 30 if(color.a == 0){ 31 text += "0"; 32 } else { 33 text += "1"; 34 } 35 if(x != texture.width-1) text += ","; 36 } 37 if(y != texture.height-1) text += "\n"; 38 } 39 Debug.Log(text); 40 } 41 42}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/18 12:41