文章目录
1、简答题
解释 游戏对象(GameObjects) 和 资源(Assets)的区别与联系。
区别:游戏对象通常都是直接出现在场景中,一般有玩家、敌人、以及环境和音乐等,是具有一定属性与功能的事物的实体化,简单来说就是在游戏过程中承担一部分职能并携带一定属性的组件。而资源则是由我们预先准备好的素材,例如3D模型、音频文件,图像,脚本或Unity支持的任何其他类型的文件,在创作游戏的时候可以直接迁移、重复使用。
联系:游戏对象是资源整合的具体表现,资源可以被一个或多个游戏对象使用,有些资源作为模板,可实例化成游戏中具体的对象。而游戏对象同样也可以被保存为资源以重复使用。
下载几个游戏案例,分别总结资源、对象组织的结构(指资源的目录组织结构与游戏对象树的层次结构)
首先从爱给网下载游戏源码。
首先下载了一个天天酷跑,这游戏在当年也是火爆了好一段时间的了。
资源文件目录当中包括动画(Animations)、预制(Prefabs)、脚本(Scripts)。
同时游戏对象也就只有主摄像机(Main Camera)、玩家(Player)、背景(BG)、画布(Canvas)、事件系统(EventSystem)、游戏管理器(GameManager)。因为只是一个2D的游戏,因而大致地在设置好玩家动作的基础上,再对背景跟画布做做更改就差不多了。
编写一个代码,使用 debug 语句来验证 MonoBehaviour 基本行为或事件触发的条件
基本行为包括 Awake() Start() Update() FixedUpdate() LateUpdate()
常用事件包括 OnGUI() OnDisable() OnEnable()
// Start is called before the first frame update
void Start()
{
Debug.Log("Start");
}
// Update is called once per frame
void Update()
{
Debug.Log("Update");
}
private void Awake()
{
Debug.Log("Awake");
}
private void FixedUpdate()
{
Debug.Log("FixedUpdate");
}
private void LateUpdate()
{
Debug.Log("LateUpdate");
}
private void OnGUI()
{
Debug.Log("OnGUI");
}
private void OnDisable()
{
Debug.Log("OnDisable");
}
private void OnEnable()
{
Debug.Log("OnEnable");
}
运行结果:
查找脚本手册,了解 GameObject,Transform,Component 对象
分别翻译官方对三个对象的描述(Description)
GameObject:Unity Scenes中所有实体的基类。
Transform:对象的位置,旋转和比例。场景中的每个对象都有一个变换。它用于存储和操纵对象的位置,旋转和比例。每个变换都可以有一个父级,它允许您分层应用位置,旋转和缩放。这是在“层次结构”窗格中看到的层次结构。同时它们还支持枚举器。
Component:所有附加到GameObject的部件的基类。
描述下图中 table 对象(实体)的属性、table 的 Transform