coursera-Unity游戏编程基础笔记

第二周

基础操作

  1. GameObject创建: Hierarchy右键

  2. component表示游戏对象的某种属性或行为

  3. Transform组件

    • 用于设置游戏对象在场景中的位置,朝向,尺寸。
    • 无法手动添加或删除。
    • 绝大部分游戏对象(UI游戏对象除外,UI包含recttransform)都包含
    • rotation 顺时针为正
    • 以父对象为参照系
  4. Prefab

    • 方便进行相同游戏对象的创建和批量修改
    • 对某个预制件实例修改不会影响其它预制件实例

物理系统

  1. 刚体 Rigidbody
    • 用于模拟游戏世界中物体受力后的行为
    • 选中游戏对象 — Add Component — Physics — Rigidbody
    • 每个游戏对象只能添加一个刚体组件
    • 属性
      • Mass:质量;
      • Drag:运动时的阻力;
      • Angular Drag:旋转时的角阻力;
      • Constraints 刚体约束: freeze position - 在某方向不发生位移,freeze rotation - 绕某轴不发生旋转
  2. 恒定力 Constant Force
    • 力或力矩可以选择世界坐标系或局部坐标系
    • 作用力通常是通过游戏对象之间的交互产生的,同时作用力也不一定是恒定力,所以通常使用游戏脚本给游戏对象添加作用力
  3. 碰撞体 Collider
    • 定义了碰撞形状,用于碰撞检测。两个物体都有碰撞体组件时,才会计算碰撞,否则会相互穿过。
    • 内置对象都默认条件了缺省形状的碰撞体组件,如无特殊需要不用添加新的。
    • 碰撞体勾选Is Trigger属性后变成触发器, 用于检测是否有其它物体进入所在区域。变成触发器之后不再具有碰撞体的功能,其它物体与其接触后会相互穿透。
    • 一个物体可以拥有多个碰撞体
  4. 物理材质
    • 在碰撞体中添加
    • Friction/Bounce Combine 用于定义两个碰撞体之间的摩擦力/弹力如何相互作用
    • 添加对象的弹力可以创建一个具有弹力属性的材质,然后将碰撞体的材质设为此材质。在此基础上添加constant force可以让弹性物品一直运动(比如一个不停弹起的球)
  5. 物理系统管理器 Physics Manager
    • 管理整个项目中物理系统的默认参数值
    • Edit — Project Settings — Physics
    • Bounce Threshold 弹性阈值:如果两个即将发生碰撞的物体相对速度小于阈值,这两个对象不会因为弹性作用而弹开
    • Default Contact Offset 当两个对象距离小于该距离时才会发生碰撞

图形系统 - 三维物体渲染

  1. 网格(Mesh)
    • 游戏中的三维物体使用网格来描述自身的形状和尺寸
    • 一个模型由若干网格面组成,每个面由若干三角形组成
    • 图形学中经常使用三角形网格来描述物体的几何信息,可以采用图形卡GPU对三角形网格有关的计算进行加速
    • eg:正方体可以看作由12个三角形组成,每个面两个。球体可以通过多次细分得到多个小三角形。//想回去复习图形学了
  2. 网格相关组件
    • 用网格过滤器(Mesh Filter)存放游戏对象的网格信息, 把网格信息传递到网格渲染器(Mesh Renderer),由网格渲染器将模型渲染到屏幕。
    • Mesh Filter主要用于确定模型的形状和尺寸。
    • Mesh Renderer可以指定游戏对象的表面特征。 从过滤器获得几何形状,用于渲染场景中的模型
      • cast shadows 是否产生阴影
      • receive shadows 是否接受其它对象产生的阴影
      • Materials 材质组。一个renderer可以使用多个材质。
    • 网格过滤器和渲染器必须成对使用,缺少任意一个都会导致游戏对象的渲染失败
    • 不勾选Mesh Renderer会使对象隐形,但仍具有碰撞体的作用(可以做挡板限制小球滚动方向)
  3. 材质(Material)
    • default material无法修改
    • 着色器(Shader)主要用于图像的渲染过程。可以使用着色器语言来编写相应脚本,实现图像渲染的不同效果。
    • 标准着色器
      • Rendering Mode: Opaque,Transparent(制作头盔、玻璃等透明效果),Fade(淡入淡出,由不透明渐变到透明,如立体投影),Cutout(允许透明不透明效果同时存在并由明显的边界,如草地)
      • Albedo:表示光的反射率,描述物体的基本颜色
      • NormalMap:法向贴图。可以通过改变光的反射角度,使物体显得凹凸不平。(如金属条纹质感)
      • Emission:物体的自发光
    • 天空盒(Skybox) 用于设置场景中的天空背景图案,使用6个方向的贴图

图形系统 - 光源

  1. 光源(Light)
    • Type:
      • 方向光:用于模拟极远处的光照,如地球上的太阳光
      • 点光源:模拟光源向四周发出均匀的光线,如灯泡
      • 聚光灯:模拟光源向某个方向发出圆锥体的光线,如手电筒、路灯
      • 面光源:无法模拟实时光照,用于光照烘焙(将场景光照信息生成到贴图中)
    • Intensity: 光照强度
    • Bounce Intensity:反射光强度
  2. 环境光
    • 奠定场景的基本色调
    • Window — Lighting — Scene
    • Skybox:天空盒材质
    • Ambient Source:环境光来源
      • 天空盒:设置了材质,使用材质所产成光效果;如果天空盒未选定材质,效果同单色光(Color)
      • 梯度光(Gradient):拥有Sky、Equator、Ground三个颜色参数,对应天空、赤道、地面的光颜色,两两之间光颜色成梯度分布
      • 单色光(Color):根据选定的颜色作为环境光颜色
    • Ambient Intensity:环境光强度

图形系统 - 摄像机

在Unity场景中必须有一个摄像机用于绘制场景。引擎对摄像机可以看到的游戏世界的空间区域进行渲染,生成最终的游戏画面。

  1. 类型:
    • 视角不同:第一人称、第三人称
    • 显示个数:单人模式、多人模式
    • 其它行为:赛车游戏后视镜、射击游戏死亡后的摄像机切换
  2. Camera
    • Clear Flags: 摄像机未绘制部分的图像显示
      • Skybox 以天空盒作为摄像机的清除标记
      • Solid Color 以某种颜色作为摄像机的清除标记,纯色背景
      • Depth Only 以深度值较低的摄像机渲染的图案作为该摄像机的清除标记,一般用于多个摄像机的同时绘制。(eg:两个摄像机,高深度绘制立方体,低深度绘制纯色背景和球模型,则立方体始终绘制在球体前)
      • Don't Clear 不清除,摄像机的清除标记为上次渲染过的图像(eg:立方体平移后留下的影子并未消除)
    • Projection 投射方式
      • Perspective 透视投影 近大远小(比如平视多个物体)
      • Orthographic 正交投影 物体大小不会因为与摄像机距离不同发生变化(比如显示一个俯视地图)
    • Field of View 摄像机视角
    • Clipping Planes 摄像机远近剪切平面
    • Depth 摄像机深度值:表示摄像机的绘制顺序,默认-1。若场景中存在多个摄像机,深度越小,该摄像机对应的游戏画面越早绘制,后绘制的图像会覆盖前期绘制的图像。
  3. 其它组件
    • GUI Layer 可以显示Unity4.6之前旧版的GUI控件
    • Flare Layer 使镜头耀斑特效显示在摄像机所渲染的图形中
    • Audio Listener 用于收集游戏场景中的声音并播放

音频

  1. AudioSource 在场景中播放音频片段(Audio Clip)
    • 游戏对象 — Add Component — Audio — Audio Source
    • Play On Awake 是否自动播放
    • Pitch 音调高低
    • 比如给多米诺骨牌添加碰撞音效
  2. AudioListener 收集场景中声音并播放
    • 摄像机对象中预置了AudioListener,我们也可通过添加组件的方式给游戏对象添加此组件
    • 当场景中存在多个AudioListener时,Unity编辑器会随机选择其中一个生效,其余均保持静默
    • 游戏对象 — Add Component — Aduio — Audio Listener
  3. 音频系统管理器(Audio Manager):管理整个项目中音频系统的相关参数
    • Edit — Project Setting — Audio
    • Global Volume 全局音量大小
    • Disable Unity Audio 是否停用Unity的音频系统

项目部署

  • File — Build Settings
  • 步骤
    1. 把场景添加到构建列表
    2. 选择项目发布的平台
    3. 设置平台参数
    4. 生成游戏项目

你可能感兴趣的:(coursera-Unity游戏编程基础笔记)