目录
三、如何在代码中动态获取或者设置2D精灵(Sprite)的“Mask Texture”和“Normal Map”?
在Unity的2D光照系统中,2D精灵(Sprite)可以通过添加“Secondary Texture”来丰富精灵(Sprite)的表现形式,一个2D精灵(Sprite)允许添加最多8个”Secondary Texture“,而其中有两类比较特殊的贴图,一个是”Normal Map“,另一个就是”Mask Texture“,它们之所以特殊,就是因为它们是2D光照系统中定义好行为的贴图(Texture),通过给2D精灵(Sprite)添加”Normal Map“或者”Mask Texture“可以增强2D精灵(Sprite)在2D光照下的表现形式,具体说明可以参见我的另一篇原创技术博客。下面我们将分别讲解”Normal Map“和”Mask Texture“的详细用法。
在使用”Normal Map“和”Mask Texture“之前需要明确一点:这里提到的”Normal Map“和”Mask Texture“是作为”Secondary Texture“赋给2D精灵(Sprite),并且需要配合Unity官方提供的2D光照系统才能发挥作用,和3D游戏中类似的概念没有关系。比如,3D游戏中也有法线贴图(Normal Map)的概念,不过和这里的法线贴图(Normal Map)无关,虽然在概念上无关,但是在制作方法上是一样的。
一、”Normal Map“的用法
1、为2D精灵(Sprite)创建专属的法线贴图(Normal Map):我们要使用第三方的软件才能为2D精灵(Sprite)创建专属的法线贴图(Normal Map),创建2D精灵(Sprite)使用的法线贴图(Normal Map)和创建3D模型(Model)使用的法线贴图(Normal Map)的步骤是一样的。创建法线贴图(Normal Map)的软件有很多,比如:xNormal、SpriteIlluminator等。这些软件的具体用法可以上网搜,网上的资源一大堆。
2、将创建好的法线贴图(Normal Map)赋给2D精灵(Sprite):具体方法请参见官方文档。其中有两点需要特别注意,第一点就是将制作好的法线贴图(Normal Map)导入到Unity编辑器中的时候,图片资源在Inspector面板上的“Texture Type”属性应该选择“Sprite (2D and UI)”,而不是“Normal map”(如果想要知道原因,可以参见我的另一篇原创技术博客),第二点就是在Sprite Editor中为2D精灵(Sprite)添加法线贴图(Normal Map)的时候,“Secondary Texture”的“Name”属性值不能乱写,必须用2D光照系统指定的字符串常量,即“_NormalMap”,我们可以通过点击输入框后面的下拉列表来选择这个字符串常量(如果想要知道原因,可以参见我的另一篇原创技术博客