保定自助建站,做静态网站,企业域名如何申请,今天重庆发生大新闻在Unity中#xff0c;一个材质是唯一的#xff0c;也就是实例#xff0c;当我们打开Debug面板时#xff0c;就可以看清楚材质的具体信息。 其中SvaedProperties就是材质保存的属性#xff0c;当然贴图也是属性#xff0c;也就是TexEnvs下的属性 当然#xff0c;要判断某…在Unity中一个材质是唯一的也就是实例当我们打开Debug面板时就可以看清楚材质的具体信息。 其中SvaedProperties就是材质保存的属性当然贴图也是属性也就是TexEnvs下的属性 当然要判断某个材质是否有某张贴图我们首先需要获得贴图可以使用以下函数来获得贴图在资源路径下的路径。 private string GetPath(Texture texture) { return AssetDatabase.GetAssetPath(texture.GetInstanceID()); } 然后使用下面的方法 先获得材质下的所有保存的贴图属性路径我们可以在Debug面板下Copy然后再遍历这些属性查找它们是否和我们的贴图一致即可 private bool HasTexture(Material material, string texturePath){if (texturePath ! null){SerializedObject serializedMaterial new SerializedObject(material);SerializedProperty texturesProperty serializedMaterial.FindProperty(m_SavedProperties.m_TexEnvs);for (int i 0; i texturesProperty.arraySize; i){SerializedProperty textureProperty texturesProperty.GetArrayElementAtIndex(i);SerializedProperty textureValueProperty textureProperty.FindPropertyRelative(second.m_Texture);if (textureValueProperty ! null){Texture texture textureValueProperty.objectReferenceValue as Texture;if (texture ! null AssetDatabase.GetAssetPath(texture) texturePath){return true;}}}}return false;}