第二周
基础操作
-
GameObject创建: Hierarchy右键
-
component表示游戏对象的某种属性或行为
-
Transform组件
- 用于设置游戏对象在场景中的位置,朝向,尺寸。
- 无法手动添加或删除。
- 绝大部分游戏对象(UI游戏对象除外,UI包含recttransform)都包含
- rotation 顺时针为正
- 以父对象为参照系
-
Prefab
- 方便进行相同游戏对象的创建和批量修改
- 对某个预制件实例修改不会影响其它预制件实例
物理系统
- 刚体 Rigidbody
- 用于模拟游戏世界中物体受力后的行为
- 选中游戏对象 — Add Component — Physics — Rigidbody
- 每个游戏对象只能添加一个刚体组件
- 属性
- Mass:质量;
- Drag:运动时的阻力;
- Angular Drag:旋转时的角阻力;
- Constraints 刚体约束: freeze position - 在某方向不发生位移,freeze rotation - 绕某轴不发生旋转
- 恒定力 Constant Force
- 力或力矩可以选择世界坐标系或局部坐标系
- 作用力通常是通过游戏对象之间的交互产生的,同时作用力也不一定是恒定力,所以通常使用游戏脚本给游戏对象添加作用力
- 碰撞体 Collider
- 定义了碰撞形状,用于碰撞检测。两个物体都有碰撞体组件时,才会计算碰撞,否则会相互穿过。
- 内置对象都默认条件了缺省形状的碰撞体组件,如无特殊需要不用添加新的。
- 碰撞体勾选Is Trigger属性后变成触发器, 用于检测是否有其它物体进入所在区域。变成触发器之后不再具有碰撞体的功能,其它物体与其接触后会相互穿透。
- 一个物体可以拥有多个碰撞体
- 物理材质
- 在碰撞体中添加
- Friction/Bounce Combine 用于定义两个碰撞体之间的摩擦力/弹力如何相互作用
- 添加对象的弹力可以创建一个具有弹力属性的材质,然后将碰撞体的材质设为此材质。在此基础上添加constant force可以让弹性物品一直运动(比如一个不停弹起的球)
- 物理系统管理器 Physics Manager
- 管理整个项目中物理系统的默认参数值
- Edit — Project Settings — Physics
- Bounce Threshold 弹性阈值:如果两个即将发生碰撞的物体相对速度小于阈值,这两个对象不会因为弹性作用而弹开
- Default Contact Offset 当两个对象距离小于该距离时才会发生碰撞
图形系统 - 三维物体渲染
- 网格(Mesh)
- 游戏中的三维物体使用网格来描述自身的形状和尺寸
- 一个模型由若干网格面组成,每个面由若干三角形组成
- 图形学中经常使用三角形网格来描述物体的几何信息,可以采用图形卡GPU对三角形网格有关的计算进行加速
- eg:正方体可以看作由12个三角形组成,每个面两个。球体可以通过多次细分得到多个小三角形。//想回去复习图形学了
- 网格相关组件
- 用网格过滤器(Mesh Filter)存放游戏对象的网格信息, 把网格信息传递到网格渲染器(Mesh Renderer),由网格渲染器将模型渲染到屏幕。
- Mesh Filter主要用于确定模型的形状和尺寸。
- Mesh Renderer可以指定游戏对象的表面特征。 从过滤器获得几何形状,用于渲染场景中的模型
- cast shadows 是否产生阴影
- receive shadows 是否接受其它对象产生的阴影
- Materials 材质组。一个renderer可以使用多个材质。
- 网格过滤器和渲染器必须成对使用,缺少任意一个都会导致游戏对象的渲染失败
- 不勾选Mesh Renderer会使对象隐形,但仍具有碰撞体的作用(可以做挡板限制小球滚动方向)
- 材质(Material)
- default material无法修改
- 着色器(Shader)主要用于图像的渲染过程。可以使用着色器语言来编写相应脚本,实现图像渲染的不同效果。
- 标准着色器
- Rendering Mode: Opaque,Transparent(制作头盔、玻璃等透明效果),Fade(淡入淡出,由不透明渐变到透明,如立体投影),Cutout(允许透明不透明效果同时存在并由明显的边界,如草地)
- Albedo:表示光的反射率,描述物体的基本颜色
- NormalMap:法向贴图。可以通过改变光的反射角度,使物体显得凹凸不平。(如金属条纹质感)
- Emission:物体的自发光
- 天空盒(Skybox) 用于设置场景中的天空背景图案,使用6个方向的贴图
图形系统 - 光源
- 光源(Light)
- Type:
- 方向光:用于模拟极远处的光照,如地球上的太阳光
- 点光源:模拟光源向四周发出均匀的光线,如灯泡
- 聚光灯:模拟光源向某个方向发出圆锥体的光线,如手电筒、路灯
- 面光源:无法模拟实时光照,用于光照烘焙(将场景光照信息生成到贴图中)
- Intensity: 光照强度
- Bounce Intensity:反射光强度
- Type:
- 环境光
- 奠定场景的基本色调
- Window — Lighting — Scene
- Skybox:天空盒材质
- Ambient Source:环境光来源
- 天空盒:设置了材质,使用材质所产成光效果;如果天空盒未选定材质,效果同单色光(Color)
- 梯度光(Gradient):拥有Sky、Equator、Ground三个颜色参数,对应天空、赤道、地面的光颜色,两两之间光颜色成梯度分布
- 单色光(Color):根据选定的颜色作为环境光颜色
- Ambient Intensity:环境光强度
图形系统 - 摄像机
在Unity场景中必须有一个摄像机用于绘制场景。引擎对摄像机可以看到的游戏世界的空间区域进行渲染,生成最终的游戏画面。
- 类型:
- 视角不同:第一人称、第三人称
- 显示个数:单人模式、多人模式
- 其它行为:赛车游戏后视镜、射击游戏死亡后的摄像机切换
- Camera
- Clear Flags: 摄像机未绘制部分的图像显示
- Skybox 以天空盒作为摄像机的清除标记
- Solid Color 以某种颜色作为摄像机的清除标记,纯色背景
- Depth Only 以深度值较低的摄像机渲染的图案作为该摄像机的清除标记,一般用于多个摄像机的同时绘制。(eg:两个摄像机,高深度绘制立方体,低深度绘制纯色背景和球模型,则立方体始终绘制在球体前)
- Don't Clear 不清除,摄像机的清除标记为上次渲染过的图像(eg:立方体平移后留下的影子并未消除)
- Projection 投射方式
- Perspective 透视投影 近大远小(比如平视多个物体)
- Orthographic 正交投影 物体大小不会因为与摄像机距离不同发生变化(比如显示一个俯视地图)
- Field of View 摄像机视角
- Clipping Planes 摄像机远近剪切平面
- Depth 摄像机深度值:表示摄像机的绘制顺序,默认-1。若场景中存在多个摄像机,深度越小,该摄像机对应的游戏画面越早绘制,后绘制的图像会覆盖前期绘制的图像。
- Clear Flags: 摄像机未绘制部分的图像显示
- 其它组件
- GUI Layer 可以显示Unity4.6之前旧版的GUI控件
- Flare Layer 使镜头耀斑特效显示在摄像机所渲染的图形中
- Audio Listener 用于收集游戏场景中的声音并播放
音频
- AudioSource 在场景中播放音频片段(Audio Clip)
- 游戏对象 — Add Component — Audio — Audio Source
- Play On Awake 是否自动播放
- Pitch 音调高低
- 比如给多米诺骨牌添加碰撞音效
- AudioListener 收集场景中声音并播放
- 摄像机对象中预置了AudioListener,我们也可通过添加组件的方式给游戏对象添加此组件
- 当场景中存在多个AudioListener时,Unity编辑器会随机选择其中一个生效,其余均保持静默
- 游戏对象 — Add Component — Aduio — Audio Listener
- 音频系统管理器(Audio Manager):管理整个项目中音频系统的相关参数
- Edit — Project Setting — Audio
- Global Volume 全局音量大小
- Disable Unity Audio 是否停用Unity的音频系统
项目部署
- File — Build Settings
- 步骤
1. 把场景添加到构建列表
2. 选择项目发布的平台
3. 设置平台参数
4. 生成游戏项目
网友评论