3

Unity ゲームのすべてのリソース データをファイルにダンプする関数を作成しようとしていますが、現在読み込まれているシーンから画面上のビデオ、オーディオ、スクリプト名、および画像をダンプすることができました。

テクスチャやマトリックス、ベクトル、int 値、float などのシェーダー データに対して同じことをしようとすると、行き詰まります。関数を使用してこれらの形成を取得できることを知っていMaterial.GetXXXます。

たとえば、現在、次のようなTexture名前のテクスチャ タイプ プロパティを持つ標準シェーダーからメインを取得できます_MainTex

Material mat = gameObject.GetComponent<MeshRenderer>().material;
Texture mat1Tex = mat.GetTexture("_MainTex");
SaveTex(mat1Tex);

問題は、実行時にプロパティの値を取得する前に、プロパティの名前と、Texture、Matrix、Float、Color などのタイプを知る必要があることです。

サード パーティ ソースからの多くのシェーダーがプロジェクトに含まれていると予想されます。データを取得できるように、各シェーダーを手動で調べて、プロパティ名とタイプをコピーするのは複雑です。

関数で値を取得するために必要なシェーダー プロパティと型を取得する方法はありMaterial.GetXXXますか? これが不可能な場合、シェーダー データを個別にダンプする方法はありますか?

:

これは保存機能ではなく、ゲームの状態を保存およびロードする方法を探していません。Unity ゲームの分析とトラブルシューティングに使用されるプラグインです。

4

1 に答える 1