2017-09-11 5 views
1

まず、私の英語には申し訳ありません。 私はフレームごとに異なるテクスチャを持つゲームオブジェクトからいくつかのテクスチャをリストにバックアップしたいと思います。私はこれをやろうとしましたが、フレームごとにテクスチャをリストにプッシュしましたが、プッシュされたテクスチャはすべて最新のテクスチャに上書きされるようです...また、Instantiate()を試みました。各テクスチャがリストにプッシュされても、テクスチャは完全に透過的です。私は映画のテクスチャを使用していません。誰もこれを作る方法を知っていますか?ゲームオブジェクトのすべてのフレームを変更するテクスチャを取得する方法は?

私は十分説明していない可能性がありますので、何かが明確でない場合は私に尋ねてください。 は()。材料[0]は、参照ルールによってコピーに係る発明のように、リストに.mainTextureとき、これまでtargetGameObjectのコードをコピーしtargetGameObject.GetComponentの参照の

//Those line of codes are looping every frame //This is the current code transitionTextures.Add(targetGameObject.GetComponent<Renderer>().materials[0].mainTexture); //This is the another code that I tried transitionTextures.Add(Instantiate(targetGameObject.GetComponent<Renderer>().materials[0].mainTexture));

答えて

0
**transitionTextures.Add(targetGameObject.GetComponent<Renderer>().materials[0].mainTexture);** 

このラインありがとうmainTextureが変更されると、リスト内のすべての参照が更新された新しい値に変更されます。新しいオブジェクトを作成して、このような値でコピーする必要があります。

Texture2D temp = targetGameObject.GetComponent<Renderer>().materials[0].mainTexture as Texture2D; 

Texture2D tex = new Texture2D(temp.width, temp.height); 
tex.SetPixels(temp.GetPixels()); 
tex.Apply(); 

transitionTextures.Add(tex); 

これを試してみてください。

+0

ありがとうございました!私はこのコードを試して、それは実際に別の問題を持っています... temp.GetPixels()は "テクスチャ"の "データなし"のエラーを返します。私は数時間を過ごしましたが、運はまだありません。なぜこれが起こっているのか知っていますか? –

関連する問題