スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Unityで外部画像ファイルからスプライトを生成する

首記のとおり、Unityで外部フォルダの画像からスプライトを生成する方法の備忘録です。

今作っているゲームの場合、ユーザが作成した定義ファイルや、キャラクタの画像を必要に応じてスクリプト側から自動生成・解析できるようにする必要があります。
というわけで、_DataフォルダやAssetフォルダの外に定義したフォルダから、PNGを読み込んでテクスチャを作成、作成したテクスチャを用いてスプライトを作成するコードを書きました。
以下、C#のソースコードとインスペクタです(もともと戦場を動的に生成するために作ったので、クラス名がDefine Theaterとなっています)。
C#
using UnityEngine;
using System.IO;

public class DefineTheater : MonoBehaviour {
    private SpriteRenderer sr;
    void Start () {
        this.sr = this.gameObject.GetComponent<SpriteRenderer>();
        Texture2D texture = ReadTexture (".\\Graphics\\Character\\atc054.png", 90, 110);
        Sprite createdSprite = Sprite.Create (texture, new Rect (0, 0, 90, 110), new Vector2 (0, 1), 1);
        this.sr.sprite = createdSprite;
    }

    private Texture2D ReadTexture(string path, int width, int height){
        byte[] readBinary = ReadPngFile(path);
        Texture2D texture = new Texture2D(width, height);
        texture.LoadImage(readBinary);
        texture.filterMode = FilterMode.Point;
        return texture;
    }

    void Update () {
    }
}
実行結果
1対1でピクセルを対応させるために、Sprites/Defaultシェーダを設定したオブジェクト(Pixel Perfect)を作成して取り付けています。Pixel Perfect内では、Pixel snapにチェックを入れているだけです。
20141106_1.jpg 20141106_2.jpg
20141106_3.jpg 20141106_4.jpg

コメントの投稿

非公開コメント

sidetitlePROFILEsidetitle
AUTHOR: かいのしずく


詳しい自己紹介ページ
本棚(ブクログ)
平成20年以降にチェックしたのすべての本
本棚(読書メーター)
各月の読了ページ数管理用
チームカチューシャ
同人ゲームサークル MATRICES

sidetitleINFORMATIONsidetitle
VISITORS
CALENDAR
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
SEARCH
RECENT ENTRIES
CATEGORIES
ARCHIVES
sidetitleLINKsidetitle
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。