关于Unity中的几何体,材质和FBX模型

时间:2022-09-03 03:32:35

一、创建几何体的类型

1: 创建平面 Plane;
2: 创建立方体 Cube;
3: 创建球体 Sphere;
4: 创建胶囊体 Capsule;
5: 创建圆柱体 Cylinder;
6: 3D文字 3D text;

创建出来的几何体,自带这些组件:

1.transform

2.Mesh Filter:网格

3.Collider:碰撞体

4.Mesh Renderer:网格绘制,把材质拖进Material属性中就可以绘制出几何体的图案

二、材质

在resources文件夹下面创建一个metarial文件夹,里面放几何体的材质球。

一般是先创建材质球,把贴图拖进材质球的贴图属性中,然后在几何体中的材质属性栏,把贴好图的材质球拖进去,几何体才可以显示纹理,

还有一种方法就是直接把贴图拖到scene视图的几何体上面,然后Unity编辑器会自动帮我们在Materials文件下面生成一个材质球。

1.材质球的shader着色器

shader着色器常用Standard和Mobiie/Diffuse模式

(1)Standard模式

 Albedo:反射贴图,也就是材质的贴图

 Metallic:反射光线强度

(2)Mobiie/Diffuse(使用的比较多)模式

 漫反射,用的是贴图的本色。

 Tiling:如果贴图属性Wrap Mode为Repeat,那么这里是设置平铺的个数,x=1,y=1:在x轴上贴图只显示1次,在y轴上贴图只显示1次。x=2,y=1:在x轴上贴图显示2次,在y轴上贴图只显示1次。足球场的制作。

     如果贴图属性Wrap Mode为Clamp,那么这里如果x=2,y=2:最后会显示一个四分之一的贴图与在右上角,其他位置用贴图拉伸填充。

 Offset

2.贴图的属性

Wrap Mode:Repeat平铺,Clamp拉伸

Filter Mode:图片拉伸的算法,Point缩放时没有插值,效果差,Bilinear缩放时带插值,效果好。

三、FBX模型导入

在resources文件夹下面,以模型的名字命名一个文件夹,把相应的FBX和png贴图文件放进去,会自动帮我们生成一个材质文件夹。

(导入前:FBX和图片文件,导入后:FBX,图片文件,模型文件,Materials 文件夹),使用FBX是因为美术和动画比较好

1.各大工具导出到Unity的模型比例

2.FBX文件里面记录的内容

 a.模型顶点坐标,三维的

 b.模型材质的纹理坐标[0,1]

 c.模型动画

3.导入FBX和png文件到模型文件夹后自动生成的材质文件夹,里面的那个材质球可能没有正确关联到我们的贴图,这是因为材质球的命名不规范,这时候就需要手动关联贴图,Standard模式下,点击材质球的Albedo属性,选择对应的贴图。

Mobiie/Diffuse模式下,点击图片,把贴纸放进去,再点击一些属性并变化(随便选),Materials Naming,Materials Search然后点击Apply应用就行了。

如果是比较复杂的模型,没有关联好贴图

可以先试一下改变复杂模型的Materials Naming,Materials Search属性看能不能自动导入。

不行的话进行手动关联。

手动关联的步骤:

a.先把空的模型拖入场景。

b.点击场景中的空模型的其中一个子节点BodyL。

c.BodyL子节点的Materials属性里面的Element 0,Element 1表示的是这个子节点用到的材质球。

d.在BodyL子节点的Inspector面板下,找到Element 0,Element 1对应的那两个材质组件。

e.把Element 0,Element 1对应的那两个材质组件的模式改为Mobiie/Diffuse模式。

f.把和BodyL子节点名字一样的图片BodyL.png(贴图)拖到Element 0,Element 1对应的那两个材质组件的图片的位置。

但是美术一般都是自己先在Unity里面试好模型后,交给程序员的,所以模型一般没什么问题,但是从网上下载下来的资源就会遇到命名不规范,必须自己手动导入的情况。

如果是Standard模式,则贴图的显示的颜色是混合了贴图和自定义的颜色的,看起来有点奇怪

如果是Mobiie/Diffuse模式,则贴图是显示原来的颜色,最佳的品质,但是性能消耗比较大

4.一个模型下面有好多子节点,不可能是只有节点,这些节点也有自己的材质,有时候不确定是哪个贴图,可以看这些子节点的材质属性的名字。

5.美术把资源文件夹Resources整个从Unity里面导出来,用的是Assets-->Export Package,最后生成一个XXX.Package文件

 程序员用的是Assets-->Import Package,把XXX.Package文件导进来可以直接用

 其实Export Package还可以一起打包资源,脚本和场景,可以打包一整个项目,所以看到XXX.Package文件就应该知道这是别人打包好的东西,可以直接导入。