Unity Tilemap 添加相应的法线贴图、高光贴图等等(超便捷方法)
概述
项目组需要不同的地块用不同的法线贴图和高光、粗糙贴图等等。
但是我们用的是集成到unity里的 tile map。它们的代码并非是开源的,重要的渲染方式的代码都写在C++里。
拓展性非常不友好。尝试过用MaterialPropertyBlock去修改,但是因为拿不到每种地块渲染前的代码,所以
根本不知道怎么去替换法线贴图。
终于在查找资料的时候,无意中找到了Unity官方自带的一种方法:
Sprite Editor: Secondary Textures !!!!!
详细介绍
因为tilemap并不支持给shader提供多张贴图,Unity居然在SpriteEditor里很低调的支持了这种办法?
具体的做法是:
1、打开Sprite Editor
2、在下拉框中选择Secondary Textures。
3、点击+号,再在Texture一栏选择相应的法线贴图/高光贴图(反正是所需的贴图),
name的一栏输入shader里贴图相应的属性名。
4、点击Apply,即可生效!
5、游戏中生效的效果,看,生效的贴图和没使用第二张贴图的地面效果相差很远:
参考文章:
https://docs.unity3d.com/Manual/SpriteEditor-SecondaryTextures.html