unity 3d 四、游戏对象与图形基础

3D游戏编程第四次作业

基本操作演练【建议做】

下载 Fantasy Skybox FREE, 构建自己的游戏场景

根据课堂指引如下:

在Asset Store中下载Fantasy Forest Environment Free SampleFantasty Skybox FREE资源包,并运用资源包建立SkyBox和经典Forest地形.

可以利用Fantasy Forest Environment Free Sample自带的地形进行编辑,可以新建一个Terrian并使用编辑工具进行绘制,包括造山,造草,添加细节等等,我们直接使用Fantasy SkyBox FREE的天空盒,创建自己的地形进行编辑,最后结果如下:

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

  • Camera:
    作为游戏的眼睛,通过Camera来观察游戏世界。

  • Light:
    光源,可以用来照明也可用于添加阴影

  • Empty空对象
    空对象多被用于当做载体,例如挂载游戏脚本、成为其他对象的父对象等。

  • Cube等3D Object:
    搭建游戏世界的组成元素,通过设置其Transform等属性来变换它们的位置、形态等。

  • Terrain等:
    即是组成元素,又是编辑工具,例如Terrain本身是地图,然后又附带了绘制地图的各项工具(造山、造草等)。

  • 代码重用

  • 创建游戏对象

    • 使用GameObject.CreatPrimitive()函数来创建Unity自带的模型
    GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Cube);
    
    • 使用Instantiate()函数进行游戏物体的实例化
    Instantiate(GameObject,Position,Rotition)
    Instantiate(brick, new Vector3(x, y, 0), Quaternion.identity);
    
    • 动态加载预制。将预制件放在目录Resouces\下在脚本中通过Resources.Load加载:
    GameObject hp_bar = (GameObject)Resources.Load("Cube");
    
  • 获取游戏对象

    • 代码中声明,并在脚本绑定的对象中绑定指定预制prefabs
    • 通过Find函数获取游戏对象
    obj = GameObject.Find("Sphere");
    
    • 通过游戏tag获取游戏对象
    GameObject.FindWithTag("Atag")                         //返回一个游戏对象
    GameObject.FindGameObjectsWithTag("Atag")    //返回多个游戏对象
    
  • 修改游戏对象

    • gameobject.transform.position = new Vector3(2, (float)-0.5, 0);
      
  • 为对象增加游戏组件

    • 图形化界面点击游戏对象->Inspector->Add Component
    • 脚本添加
    cube.AddComponent<Rigidbody>();
    cube.GetComponent<Rigidbody>().useGravity = false;
    cube.GetComponent<Renderer>().material.color = Color.red;
    
  • 克隆游戏对象

    • GameObject hp_bar = (GameObject)Resources.Load("Cube"); //动态加载预制
      hp_bar = Instantiate(hp_bar); //克隆
      

编程实践

  • 牧师与魔鬼 动作分离版

    • 【2019开始的新要求】:设计一个裁判类,当游戏达到结束条件时,通知场景控制器游戏结束

    • 详情见:牧师与魔鬼 动作分离版


材料与渲染联系【可选】

Standard Shader 自然场景渲染器

步骤:新建一个Cube和Sphere->创建一个Material->更改Rendering Mode为Transparent

->更改透明度(Albedo)中的A值->将Material加到Cube上

->Cube变得透明->可以看到Cube里面的Sphere

声音

  • 阅读官方 Audio 手册
  • 用博客给出游戏中利用 Reverb Zones 呈现车辆穿过隧道的声效的案例

步骤:下载资源Car Engine Sound - Rotary x8 Free并导入项目

->Create Empty -> Add Component(Audio Source)->选定音源->选定Loop进行循环播放

-> Add Component(Audio Reverb Zone) -> 选定Cave作为Peverb Preset

-> 点击run按钮即可播放汽车过隧道的音乐

posted @ 2020-10-18 13:44  沐锋丶  阅读(278)  评论(1编辑  收藏  举报