ぺんたんがゲーム開発やアプリ開発、最近の気になる話題、特にスマホやIT関連について語る場所

ぺんごや

Unity Unity2D Unity初心者 Unity基礎 Unity豆知識

【Unity】Objectとして読み込んだスプライト画像をSpriteに変換する方法

更新日:

Resources.LoadやassetBundle.LoadAssetでObjectとして読み込んだスプライト画像をSpriteに変換、型キャストしようとしてハマった。

Object obj = Resources.Load(dir_name + “/” + filename);
Sprite sobj = obj as Sprite;

これでいけるかと思ったらダメだった。よくよく考えたら当然。
Resources.Loadで読み込んだ場合、ObjectにはTexture 2Dとして格納されるから。
Texture 2Dなので当然そのままSpriteには変換できない。

 

なので以下の手順が必要。

Object obj = Resources.Load(dir_name + “/” + filename);
System.Type type = obj.GetType();
if (type == typeof(UnityEngine.Texture2D)) {
Texture2D tex = obj as Texture2D;
Sprite newSprite = Sprite.Create(obj as Texture2D, new Rect(0f, 0f, tex.width, tex.height), Vector2.zero);

Objectがテクスチャーなら、それからSpriteを作るよって処理。

つまるところ、素直にResources.Load<Sprite>しとくのがいいんじゃないってお話。

 

参考サイト
Cast object as sprite for UI Image

-Unity, Unity2D, Unity初心者, Unity基礎, Unity豆知識

Copyright© ぺんごや , 2024 All Rights Reserved Powered by STINGER.