我想创建一个函数,将Unity游戏中的所有资源数据导出到文件中。我已经成功将当前加载场景中的视频、音频、脚本名称和屏幕图像导出,但在尝试导出纹理、矩阵、向量、整数值和浮点数等着色器数据时遇到了困难。我知道可以使用
例如,我现在可以通过以下代码从标准着色器中获取主要的
问题在于我需要知道属性的名称以及其类型,例如Texture、Matrix、Float、Color等等,这样我才能在运行时获取它们的值。
我期望从第三方源中获得许多着色器,并且手动检查每个着色器,复制它们的属性名称和类型以便获取数据将会很复杂。
是否有一种方法可以获取着色器的属性和所需的类型,以便使用
注意:这不是保存功能,我也不是在寻找保存和加载游戏状态的方法。这是一个用于分析和排除Unity游戏问题的插件。
Material.GetXXX
函数获取这些信息。例如,我现在可以通过以下代码从标准着色器中获取主要的
Texture
,该着色器具有名为 _MainTex
的 Texture 类型属性:Material mat = gameObject.GetComponent<MeshRenderer>().material;
Texture mat1Tex = mat.GetTexture("_MainTex");
SaveTex(mat1Tex);
问题在于我需要知道属性的名称以及其类型,例如Texture、Matrix、Float、Color等等,这样我才能在运行时获取它们的值。
我期望从第三方源中获得许多着色器,并且手动检查每个着色器,复制它们的属性名称和类型以便获取数据将会很复杂。
是否有一种方法可以获取着色器的属性和所需的类型,以便使用
Material.GetXXX
函数来检索它们的值?如果不可能,是否有任何方法可以单独转储着色器数据?注意:这不是保存功能,我也不是在寻找保存和加载游戏状态的方法。这是一个用于分析和排除Unity游戏问题的插件。