Unity3D知识框架
美术部分:
3d模型,材质,纹理,shader,Animator,Animation,天空盒,灯光效果,烘焙
程序部分:
基本组成:
Scene场景:用于摆放各种游戏对象。
GameObject:可以携带各种Compoment
Compoment:附加在GameObject,不同的组件可以使GameObject具有不同的属性。
Transform,碰撞器,刚体,渲染器,脚本也是组件,游戏对象所表现的行为都是由组件实现的。
脚本部分:C#
继承自MonoBehaviour类的组件都需要依附在场景中得游戏对象上才能执行。
用户图形界面部分(GUI):
用于制作按钮、文本显示、滚动条、下拉框等常用图形操作界面元素。GUISkin,GUIStyle
系统自带的GUI
各类GUI插件:NGUI
预制体Prefab:
程序运行时,动态实例化对象的“母体”。
使用预制体,你可以先定义它的各种属性方法,然后在使用的时候,直接实例化一个实例。
标签和层:
标签tag:用于辨别物体,与name类似。使用tag和name都可找到物体。
层layer:可以把功能应用到特定的层,这样通过层来可以过滤不需要运行该功能的对象。
比如,相机的Culling Mask属性,选择特定的层,可以实现只显示位于被选中层的对象。
资源.unitypackage:
可以直接导入inport到unity中。也可以打包你得场景,导出.unitypackage,放于其他项目中使用。
物理引擎NVIDIA PhysX:
碰撞器:在你选中物体的时候会以绿色的线框显示。
本体的碰撞体(box、sphere、capsule、cylinder)
网格碰撞器(mesh collider)
车轮碰撞器(Wheel collider)
地形碰撞器(terrain collider)
碰撞检测:可以得到与当前对象发生碰撞的对象的信息。
碰撞器碰撞检测:OnCollisionEnter
射线:Physics.Raycast
触发器碰撞检测:OnTriggerEnter
刚体:模拟物体物理现象的,模拟重力、阻力。可以给刚体添加各种力。
光照系统:
常用灯光类型:
平行光(Directional light)无衰减,模拟太阳光
聚光灯(spotlight)有衰减,锥形聚光,从一点向某一方向辐射。
点光源(Pointlight)有衰减,从一点向外辐射
烘焙:将静态光影效果渲染到纹理上,减少灯光和阴影带来的开销
阴影:hard shadows、soft shadows,
project settings—>player 设置 rendering path 为deferred lighting 延迟光照。
投射阴影的对象的Cast shadows(投射阴影)勾上
接收阴影的对象的 Receive shadows(接收阴影)勾上
粒子系统:
粒子系统组件ParticleEmitter、粒子系统GameObject.
粒子系统GameObject:
粒子系统组件:
粒子发射器:ParticleEmitter,有Ellippsoid Particle Emitter 和 Mesh Particle Emitter两种发射器。粒子产生、数量、大小、速度、存活时间等参数
粒子动画器(Particle Animator)负责粒子产生后到粒子消亡的行为变化的控制,包括旋转,受力等。
粒子渲染器(Particle Renderer)主要负责给予粒子的渲染,阴影、材质等。
地形:
unity有一组地形工具
相机:
相机视角:透视、正交
Skybox天空盒:需要skybox类型的shader和附在上面的六面贴图纹理。
第一人称视角:
第三人称视角:
动画系统:
打包发布: