700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Unity高级功能—法线贴图的制作以及在代码里面进行材质上贴图的切换

Unity高级功能—法线贴图的制作以及在代码里面进行材质上贴图的切换

时间:2019-01-31 02:22:45

相关推荐

Unity高级功能—法线贴图的制作以及在代码里面进行材质上贴图的切换

制作法线贴图还是得美术提供你几张基础的法线贴图之后,然后再去制作。

现在我们手里有两张贴图,一张是正常贴图,一张是法线贴图;

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;}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。