制作法线贴图还是得美术提供你几张基础的法线贴图之后,然后再去制作。
现在我们手里有两张贴图,一张是正常贴图,一张是法线贴图;
1、选择美术提供的基础的法线贴图:
Tip:其中Filtering选项有的地方说是应该选择Sharp,但是我的默认就是Sharp。
2、选项设置完成之后,点击右下角的“Apply”就会看见贴图变成这样:
此时我们的法线法线贴图就做好了。
代码里面怎么改变我们的法线贴图呢?其实实质就是获取材质然后更改材质上面的贴图。
我在场景里面放置了一个模型,这个模型可以放置两个材质:
此时Material就是一个Size为2的数组,我们可以在C#的时候给Material赋值一个Size为2的数组。
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassChangeMaterial:MonoBehaviour{// 定义两个公共的变量,这样就可以在Unity里面将制作好的两个材质拖过来赋值publicMaterialdiffusemap;publicMaterialnormalmap;privateboolisnormal=false;// 用来获取模型的meshrenderer组件privateMeshRenderermeshrender;//StartiscalledbeforethefirstframeupdatevoidStart(){// 获取模型的meshrenderer组件this.meshrender=this.GetComponent<MeshRenderer>();// 将拖过来的两个材质,组成数组,赋值给meshrenderer组件meshrender.materials=newMaterial[2]{this.diffusemap,this.diffusemap};}//UpdateiscalledonceperframevoidUpdate(){// 使用鼠标左键来改变当前材质if(Input.GetMouseButtonDown(0)){if(isnormal){meshrender.materials=newMaterial[2]{this.diffusemap,this.diffusemap};}else{meshrender.materials=newMaterial[2]{this.normalmap,this.normalmap};}isnormal=!isnormal;}}}