一、简答题
1、解释游戏对象(GameObjects)和资源(Assets)的区别与联系。
游戏对象和资源在游戏开发中起着不同的角色。游戏对象代表实际的游戏元素,资源提供构建游戏对象的素材和数据。它们之间紧密配合,共同构成了一个完整的游戏世界。

2、下载几个游戏案例,分别总结资源、对象组织的结构(指资源的目录组织结构与游戏对象树的层次结构)
找到一个Unity game 使用unity 开发一款3D迷你赛车单机闯关游戏
资源目录结构如下:
85b7f891974d875fb1c1d57ec34f343.png

除了这些以外,还有Sound、Image类的资源,可见资源文件并不是一类文件,而是由一大类可以被继续划分为小类的文件。

对象组织如下:

可以看到,该游戏下又可能会含有许多子对象,子对象可能还由多个子对象构成,这就是所说的游戏对象树的层次结构。

3、编写一个代码,使用 debug 语句来验证 MonoBehaviour 基本行为或事件触发的条件
check脚本代码如下:

4、查找脚本手册,了解 GameObject,Transform,Component 对象
分别翻译官方对三个对象的描述(Description)

“GameObject 游戏对象”是 Unity 中的基础对象,表示角色、道具和景物。它们本身并没有取得多大作为,但它们充当组件的容器,而组件可实现真正的功能。例如,通过将光源组件附加到游戏对象来创建光源对象。

“Transform 变换组件”确定每个对象在场景中的 Position、Rotation 和 Scale 属性的值。每个游戏对象都有一个变换组件。

“Component 组件”是游戏中对象和行为的细节,它是每个游戏对象的功能部分。

描述下图中 table 对象(实体)的属性、table 的 Transform 的属性、 table 的部件
本题目要求是把可视化图形编程界面与 Unity API 对应起来,当你在 Inspector 面板上每一个内容,应该知道对应 API。

例如:table 的对象是 GameObject,第一个选择框是 activeSelf 属性。

table的属性:

第一行:左边勾选框为activeSelf,用于决定GameObject在场景中是否处于active(可见?)状态;中间文本框用于修改对象的名称;右边勾选框调用isStatic的API,用于决定游戏对象是否为静态

第二行:左边为tag,可对对象进行标记;右边为layer,可以选择对象的框架

第三行:prefab(预设)属性,可进行选择、恢复、应用等操作

Tansform的属性:

第一行:x,y,z用于表示物体在三维空间的位置

第二行:x,y,z用于表示物体在三个方向的旋转角度

第三行:x,y,z用于调整物体的大小(长宽高)

table的部件:

Transform, Mesh Filter, Box Collider等都属于table的部件

用 UML 图描述 三者的关系(请使用 UMLet 14.1.1 stand-alone版本出图)

5、资源预设(Prefabs)与 对象克隆 (clone)
预设(Prefabs)有什么好处?

当我们要创建多个相同特性的object时,可以直接从预制中获取,避免了手动创建时大量重复、冗余的工作。

预设与对象克隆 (clone or copy or Instantiate of Unity Object) 关系?

预制体实例化后产生的新的游戏对象依然保持着与预制体的关联, 也就是对预制体进行添加组件、修改属性等操作, 预制体实例化后的游戏对象都会发生相应的改变。

而克隆中,母体和子体是独立的,相互不干扰,修改子体对母体不会产生任何影响。

二、编程实践
具体代码参考GitHub

1、井字棋
项目实现将脚本编写好之后直接拉到camera中运行即可。
实现效果可以看小编发布的视频

2、简易计算器
效果


Kim_Yang
1 声望1 粉丝

引用和评论

0 条评论