下記のようにStreamingAssetsから画像(jpg,png)を読み込み
2dSpriteに表示したいのですが、読むこむ画像のサイズによって大きさが変わってしまうので
同じ大きさ(Sprite)で表示するようにしたいです。
c#
1 2byte[] pngBytes = System.IO.File.ReadAllBytes("ファイルパス"); 3 4Texture2D tex = new Texture2D(2, 2); 5tex.LoadImage(pngBytes); 6 7Sprite fromTex = Sprite.Create(tex, new Rect(0.0f, 0.0f, tex.width, tex.height), new Vector2(0.5f, 0.5f), 100.0f); 8 9infopic.GetComponent<SpriteRenderer>().sprite = fromTex; 10
現在のスクリプトではtex.width, tex.heightの部分が
読み込んだ画像の大きさになっているので
この部分を2dSpriteの大きさで固定するか、
第四引数のpixelsPerUnitの部分を画像の大きさに合わせて調整するかのどちらかになると思うのですが
どちらの方法でもやり方がわからなかったので質問させて頂きました。
またこの場合、どちらの方法が適切なのでしょうか。
①表示したい2dSpriteのサイズを取得し、tex.width, tex.heightの部分を
2dSpriteの大きさに設定してみましたが、表示されなかった
※インスペクタを見るとSpriteには設定されているようなのでサイズがおかしいのか表示されていないように見えます
c#
1SpriteRenderer sr = infopic.GetComponent<SpriteRenderer>(); 2float width = sr.bounds.size.x; 3float height = sr.bounds.size.y; 4Sprite fromTex = Sprite.Create(tex, new Rect(0.0f, 0.0f, width, height), new Vector2(0.5f, 0.5f), 100.0f);
②リファレンスみたのですが、pixelsPerUnit(ワールド空間座標の 1 単位分に相当する、スプライトのピクセル数。)となっており、そもそもこの意味がわかりません。
カメラの位置にも関係するのかな?という感じがしますが、今回の場合、どのように計算?すれば良いのでしょうか
※カメラは位置(0,0,-10)、OrthoGraphics size10です
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。