父物体与子物体
先利用昨天的知识,使用一个圆柱,两个胶囊,制作一个子弹,如图 我们认为这是一个物体,但是unity可不这么认为,当我们想要移动它时,我们只能移动它的一个个部件。
这时在层级中建立一个空物体,将它命名为子弹,重置他的transform,并将子弹的三个组件拖入其中,这时就形成了父子物体的关系 子弹是子弹三个部件的父物体,当我们移动子弹时,子弹的三个部件也就是子物体也会随之移动,但是当我们只移动它的任意部件时,子弹以及他的其他部件并不会随之移动
这也就是我们常说的,子物体将继承父物体的transform里的属性,但子物体不影响父物体。
一般来说,我们喜欢给父物体组件,而不是子物体,既方便操作,也方便出错时更改
材质Material
材质:物体的质地,指色彩、文理、光滑度、透明度、反射率、折射率、发光度等。实际就是Shader的实例
Shader着色器:专门用来渲染3D图形的技术,可以使纹理以某种方式展现。实际就是一段嵌入到渲染管线中的程序,可以控制GPU运算图像效果的算法(也就是一段代码,用的不是C#)
Texture纹理:附加到物体表面的贴图,可理解为就是一张附在表面的图
材质的使用和修改
创建一个材质后,附在子弹头后的效果:(一定要放在Mesh Render的Element 0里,将材质拖到物体上时是默认放到这里的) 无论是在材质还是在物体的这个界面修改材质,所有附有该材质的物体的材质都会随之改变
纹理的使用和修改
纹理文件格式:.png、.jpg或者.psd(ps的文件形式)
将纹理文件拖到物体上时,就会赋予该物体材质,可以在Project面板看到新建的材质
Rendering Mode(渲染模式)
在物体的材质中,我们可以看到Rendering Mode(渲染模式),其中有四个模式可以选择,分别是:Opaque(不透明的)(默认)、Cutout(镂空,会把透明通道去掉,也就是把背景去掉)、Fade(消失渐变) 、transparent(透明的,跟颜色里的A有关)
在使用Transparent时,将物体渲染改成该模式,然后调节材质中A的值,就会展示出一定的透明度 但是在透明度最高时,也能看见,所以做淡入淡出等效果时,不能使用Transparent模式,要使用fade模式
其他材质属性
纹理、着色器与材质的关系
导入shader的方式
将含有shader文件的文件夹拖入project面板导入,导入后将想要实现的shader拖入对应的材质,使该材质获得这个shader,然后再将这个材质赋予对应物体
物理着色器
基于物理特性的Shader是Unity 5.X的重大革新之一,所谓物理着色器就是遵循物理学的能量守恒定律,可以创建出在不同光照环境下都接近真实的效果
|