Unityを使用して、実行時に複数のpngファイルをロードしたいと思います。私は与えられたディレクトリでテクスチャをロードするためにwwwクラスを使用しています。私のコードは以下の通りです:WWWクラスで複数の外部テクスチャをロード
public IEnumerator LoadPNG(string _path)
{
string[] filePaths = Directory.GetFiles(_path);
foreach (string fileDir in filePaths)
{
using (WWW www = new WWW("file://" + Path.GetFullPath(fileDir)))
{
yield return www;
Texture2D texture = Texture2D.whiteTexture;
www.LoadImageIntoTexture(texture);
this.textureList.Add(texture);
}
}
}
この機能はコルーチンと呼ばれています。プログラムがすべてのテクスチャの読み込みを終了すると、textureList配列には正しい量のテクスチャがあります。しかし、それらのすべてが最後にテクスチャをロードされます。どんな助けもありがとうございます。
この行(Texture2D texture = Texture2D.whiteTexture;)では、常に同じオブジェクトに参照を設定します。新しいテクスチャを初期化する必要があります。私は(新しいTexture2D)で動作すると思います。 – NtFreX
新しいTexture2Dをリソースなしで直接1つに表現することはできません。私はすでにLoadImageIntoTextureテクスチャによってテクスチャ変数を上書きしています。だから私は思うべき問題ではありません。 – mcelik
@mcelik 'Texture2D'で' new'キーワードを使うことができます。あなたのコードを更新したのでこれがあなたの問題だと思います。 'Texture2D texture = new Texture2D(4,4、TextureFormat.DXT1、false);' – Programmer