unity3d 中 Material.mainTexture 与 Material.Texture 有什么不同?

 我来答
菜鸟13d
2015-03-13
知道答主
回答量:12
采纳率:100%
帮助的人:4.9万
展开全部
材质(material)影响物体表面的属性,比如冰,木质材质他们的摩擦力不一样。Texture只是表面纹理,就是看到的结果。Material.mainTexture有一个,Material.texture有多个
育知同创教育
2016-03-23 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
Material.mainTexture是Material.Texture的一个接口实现。
通过Material获取Texture的接口有:Material.mainTexture, Material.GetTexture(string propertyName); 但没有一个接口可以直接获取Material的所有textures.
解决方法:
利用序列化,得到Shader的Property,从而得到Shader里Texture相关的PropertyName。 Unity4.1版本以上,ShaderUtil已经提供相应接口。
static string[] GetCertainMaterialTexturePaths(Material _mat)
{
List<string > results = new List<string >();

Shader shader = _mat.shader;
for (int i = 0; i < ShaderUtil.GetPropertyCount(shader); ++i)
{
if (ShaderUtil .GetPropertyType(shader, i) == ShaderUtil.ShaderPropertyType .TexEnv)
{
string propertyName = ShaderUtil .GetPropertyName(shader, i);
Texture tex = _mat.GetTexture(propertyName);
string texPath = AssetDatabase .GetAssetPath(tex.GetInstanceID());
results.Add(texPath);
}
}

return results.ToArray();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
诺记美利达
电脑发烧友

2014-10-30 · 不会修电脑,但是你问我的我都知道
知道大有可为答主
回答量:1.3万
采纳率:59%
帮助的人:3764万
展开全部
你要是有好多个材质呢。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式