はじめに
今回はTexture2DからSpriteに変換する記事になります!
2DオブジェクトのSprite
やUIのImage
などのゲームオブジェクトにはTexture2D
ではなくSprite
を用います。
そもそもTexture2D
とSprite
の違いはなんだろうと思い調べてみたところ、こちらの質問に対する回答が非常に分かりやすかったです。
この回答の結論として、
Texture=画像ファイル
Sprite=画像ファイルを実際に使う為にAsset化したもの
と表現されていました。
前置きが長くなってしまいましたが、実際にTexture2D
からSprite
に変換してみましょう。
やり方
やり方はシンプルで、Sprite.Createメソッド
を用いることでできます。
いくつかオーバーロードがありますが、一番簡単なものを紹介しておきます。
public static Sprite Create (Texture2D texture, Rect rect, Vector2 pivot);
引数 | 意味 |
---|---|
texture | Sprite のグラフィックスとして適用させるテクスチャ |
rect | Sprite に適用させるテクスチャの Rect 領域 |
pivot | グラフィックスの Rect に対するピボット地点の相対位置 |
Sprite-Create - Unity スクリプトリファレンス
これを実際に使ってみると、
//Texture2Dを作成 Texture2D tex = new Texture2D(128, 128); //Texture2DをSpriteに変換 Sprite sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), Vector2.zero);
このようにすることで変換をすることができます。
さいごに
画像関係はtexture
であったりsprite
であったりbyte[]
であったりと色々面倒ですよね。
うまく慣れたいものです。