HW4_游戏对象与图形基础

HW4 游戏对象与图形基础

基本操作演练

  • 1.1 下载Fantasy Skybox Free,构建自己的游戏场景

    • 到Asset Store里面下载 Fantasy Skybox Free

    skybox

    • import packages之后,可以看到Asset目录下多了三个文件夹

      add

    • 开始构建自己的游戏场景

      创建天空

      天空是一个球状贴图,通常用 6 面贴图表示

      • 菜单 Assets -> create -> Material

      • Inspector ->shader -> skybox -> 6 sided

      • 按前后、上下、左右拖入 6 个图片

      • 制作完成,拖入项目 Material 目录

        operation

      再创建一个Terrain(地形)

      Unity 提供了简单的地形设计工具

      菜单 -> Game object -> 3d object -> Terrain

      introduction

      • 设置地图大小与位置

      • 使用造山工具(点击地图网格,上升地形;按 shift 键,下降地形)

      • 使用高度工具 ->画出一些山中路径

      • 使用平缓工具 -> 画出与平地的连接

      • 选择合适材料铺地、种草、种树

        但是呢,Unity一开始是没有自带的草和树的资源,所以我们需要从Fantasy Skybox Free中添加草和树的资源

        点击Terrain -> Inspector -> paint tree -> Edit Trees -> Add Tree

        然后将Fantasy Skybox FREE/Demo/Prefabs 文件夹中的树资源拖到所弹出窗口中

        addTree

        addTree2

        草的资源在Fantasy Skybox FREE/Demo/Textures文件夹内,添加方法与树差不多

        最后我做的场景(很丑很粗糙,所以使用的时候还是用已经做好的吧……)

        show

        最后,把天空盒安置在摄像头上

        点击Component–>Rendering–>Skybox,将我们做好的Skybox拖到MainCamera中

  • 1.2 写一个简单的总结,总结游戏对象的使用

    您在游戏中看到的每个对象都是一个GameObject。 这是Unity的基本物体。 你可以在层次结构窗口中找到所有GameObject。当你在unity中创建一个新项目时,在默认情况下,层级窗口中会有两个游戏对象。

    • MainCamera:控制游戏窗口的视图
    • Directional Light:提供任何特定方向的光

    单独的GameObject只是一个空容器,但当你向GameObject添加组件时,它会向它们添加功能。

    默认情况下,游戏对象可能会附加一些组件(Transform/Mesh Collider等)。你可以在检查窗口中看到GameObject(游戏物体)的所有组件。如果任何组件被禁用,它将被附加到GameObject(游戏物体),但它的功能不会在场景中呈现。

    原始游戏对象可以直接在unity中创建,你可以将这些GameObjects用于测试目的或任何其他需求。你也可以通过预制存储GameObject和它的所有组件和属性。一旦预制被创建,游戏对象可以在场景和项目中多次重用。

    有时候我们也会用到Empty GameObject,它只有Transform组件,它一般用于挂载Controller脚本,或者用于创建多个GameObjects的父类

编程实践

材料与渲染联系

  • 从 Unity 5 开始,使用新的 Standard Shader 作为自然场景的渲染

    • 阅读官方 Standard Shader 手册

      Unity标准着色器是一个内置的着色器,具有全面的功能。它可以用来渲染“真实世界”的物体,如石头、木头、玻璃、塑料和金属,并支持广泛的着色器类型和组合。

      标准的着色器还包括一个先进的照明模型称为物理基础的阴影。基于物理的遮阳(PBS)以一种模拟现实的方式模拟了材料和光之间的相互作用。

      Unity 中的着色器是通过材质 (Material) 使用的。材质本质上将着色器代码与纹理之类的参数结合起来。

    • 选择合适内容,如 Albedo Color and Transparency,寻找合适素材,用博客展示相关效果的呈现

      反照率颜色和透明度(Albedo Color and Transparency)具有默认参数且未分配任何值或纹理的标准明暗器材质。 反照率颜色参数突出显示。 Albedo参数控制曲面的基础颜色。

      Standard着色器的四种渲染模式:

      • Opaque模式:这种模式代表该着色器不支持透明通道, 物体是完全不透明的
      • Cutout模式:这种模式下支持透明通道,要么就透明,要么就完全不透明,图片内容是否透明,由Albedo的Alpha值和Alpha Cutoff决定的。适合制作叶子,草灯,带有透明通道的图片但不希望出半透明效果的材质;
      • Fade模式: 褪色模式,改模式下可以操作Albedo的Color的Alpha值来操作材质的透明度,比较适合做物体渐渐淡出的动画效果, 当Alpha值降低了以后,表面的高光和反色也会变淡
      • Transparent模式: 这种模式下的材质通过Albedo的Color的Alpha值来操作材质的透明度,当物体为半透明的时候,表面的高光和反色不会变淡
        ​ A range of white to black albedo values:

    ​ 例子我们使用之前太阳系的金星Material

    • 初始 Albedo - > #FFFFFF

      normal

    • Albedo - > #7F7F7F
      albedo1

    • Albedo - > #000000

      albedo2

    修改Transparency

    反照率颜色的Alpha值控制材质的透明度。仅在渲染时才有效材质的模式设置为透明模式之一,而不是不透明模式。

    所以我们需要在Inspector中将Mterials的rendering mode修改transparent

    • 初始 Alpha - > 255

      normal

    • Alpha -> 127

      transparent1

    • Alpha -> 0

      transparent2

  • Unity 5 声音

    • 阅读官方 Audio 手册

      Unity的音频功能包括完整的三维空间声音,实时混合和掌握,层次混频器,快照,预定义的效果和更多。

      如果没有某种音频,游戏将是不完整的,无论是背景音乐还是音效。Unity的音频系统灵活而强大。它可以导入大多数标准的音频文件格式,并具有复杂的功能,可以在3D空间中播放声音,还可以应用回音和过滤等效果。Unity还可以记录来自用户机器上任何可用麦克风的音频,以便在游戏过程中使用,或用于存储和传输。Unity可以导入AIFF, WAV, MP3和Ogg格式的音频文件,就像其他资产一样,只需把文件拖到项目面板。

    • 用博客给出游戏中利用 Reverb Zones 呈现车辆穿过隧道的声效的 案例

      Unity的音频功能包括完整的三维空间声音,实时混合和掌握,层次混频器,快照,预定义的效果和更多。

      如果没有某种音频,游戏将是不完整的,无论是背景音乐还是音效。Unity的音频系统灵活而强大。它可以导入大多数标准的音频文件格式,并具有复杂的功能,可以在3D空间中播放声音,还可以应用回音和过滤等效果。Unity还可以记录来自用户机器上任何可用麦克风的音频,以便在游戏过程中使用,或用于存储和传输。Unity可以导入AIFF, WAV, MP3和Ogg格式的音频文件,就像其他资产一样,只需把文件拖到项目面板。

    • 用博客给出游戏中利用 Reverb Zones 呈现车辆穿过隧道的声效的案例

      混响区域 (reverb zone)

      混响区域 (reverb zone) 采用音频片段 (audio clip) ,并根据音频侦听器 (audio listener) 在混响区域 (reverb zone) 中所处的位置使其变形。若希望从没有环境效果的位置逐渐变为有环境效果的位置(例如在进入洞穴时)使用混响区域 (reverb zone)。

      要向变换添加混响区域 (reverb zone),只需在检视器 (inspector) 中选择对象,然后选择 组件 (component) -> 音频 (audio) -> 音频混响区域 (audio reverb zone)。

      reverb

      也可以直接创建 Reverb Zone 对象

      reverbobject

      然后我们创建一个 Object (模拟汽车),添加Audio Source (模拟汽车声音)(图中我还没有挂载AudioClip),再添加 移动闯过AudioReverbZone的脚本 (模拟汽车移动),这样我们就能呈现车辆穿过隧道的声效

      reverbinstance

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值