让Unity中的多个模型共用同一个材质
在Unity开发中,若想提升画面质感,应尽可能让多个模型共用同一个材质。接下来,我们将详细探讨如何实现这一过程。
Unity官方文档明确建议,要尽可能共用Material。这是因为渲染引擎通常会依据材质对需要渲染的对象进行排序,使用同一材质的模型能够合并到同一个批次进行渲染,从而提高渲染效率。所以,文档建议一个模型尽量只采用一个材质,同一类模型最好共用一个材质。
然而,在实际制作过程中,我们会遇到一些问题。使用同一张texture的模型在导入Unity后,Unity会为每个模型生成一个Material。并且,导入到Unity中的模型无法直接修改Material,只能将该模型放置到Scene之后再重新指定材质,这个过程十分繁琐。而且,一旦更新了模型,就需要再次重复该操作。
经过在文档中多次查找,我们终于找到了问题的解决办法,即Mesh导入的目录有严格规定。具体来说,模型的贴图文件必须存放在Textures目录下,这个目录可以与Mesh文件的目录平级,也可以位于上级目录,但必须使用“Textures”这个目录名。
当Mesh Importer执行导入操作时,会根据Texture名在Material目录下生成对应的材质。同时,当有新的mesh导入且用到同一张Texture时,它会先查找是否已经存在对应的Material,若不存在才会重新创建。
简单来讲,只要在模型制作时遵循这个规则,将贴图文件都存放到Textures目录下,后续的工作将会顺利许多。