UnityでAssetフォルダにない画像ファイルを読み込む
unity unity programming
Published: 2020-02-05

 

UnityでAssetフォルダにない画像ファイルを読み込む方法を調べました。

この方法を知っておくと、ユーザーが作成した画像やスクリーンショットの表示など様々な場面で役に立ちそうです。

 

Assetフォルダにない画像ファイルを読み込む方法

下記のスクリプトでAssetフォルダにない画像ファイルを読み込むことができます。


using UnityEngine;
using System.IO;

public class Sample : MonoBehaviour
{
    public Texture2D LoadTexture(string imagePath)
    {
        // ファイルがない場合はnullを返す
        if (!File.Exists(imagePath))
        {
            return null;
        }

        // ファイルを読み込む
        var fileData = File.ReadAllBytes(imagePath);
        var tex = new Texture2D(2, 2);
        var success = tex.LoadImage(fileData);

        // ファイルをロードできない場合はnullを返す
        if (!success)
        {
            return null;
        }

        return tex;
    }
}

 

LoadTextureの使い方

LoadTextureメソッドの使い方は下記の通りです。

パラメータとして読み込みたいファイルパスを渡します。


var imagePath = Path.Combine(Application.dataPath, "ImageToLoad.png");
var tex = LoadTexture(imagePath);

 

環境

Windows 10 Pro

Unity 2019.3