ch02离散仿真引擎基础——Unity3D学习
一、简答题
1.解释游戏对象(GameObjects)和资源(Assets)的区别与联系
- 游戏对象(GameObjects):一般为玩家,敌人,环境等
- 资源(Assets):一般包括声音,脚本,材质等
- 区别与联系:
- 对象一般是一些资源的集合体
- 资源可以被多个对象使用
- 资源作为模版,可实例化游戏中具体的对象。
2、下载几个游戏案例,分别总结资源、对象组织的结构(指资源的目录组织结构与游戏对象树的层次结构)
- 资源目录下有艺术材料(动画、图像)、音频、预设、场景、脚本、地形等。
- 游戏对象有摄像机,场景,光源,起始位置等。
资源来自:Creator Kit: FPS 工作细胞游戏
https://assetstore.unity.com/packages/templates/tutorials/creator-kit-fps-149310
3.编写一个代码,使用 debug 语句来验证 MonoBehaviour 基本行为或事件触发的条件
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
void Awake () {
Debug.Log ("onAwake");
}
// Use this for initialization
void Start () {
Debug.Log("onStart");
}
// Update is called once per frame
void Update () {
Debug.Log("onUpdate");
}
void FixedUpdate(){
Debug.Log ("onFixedUpdate");
}
void LateUpdate(){
Debug.Log ("onLateUpdate");
}
void OnGUI(){
Debug.Log ("onGUI");
}
void OnDisable(){
Debug.Log ("onDisable");
}
void OnEnable(){
Debug.Log ("onEnable");
}
}
MonoBehaviour 基本行为 【按执行顺序】 |
触发条件 |
---|---|
Awake() | 当前控制脚本实例被装载的时候调用。一般用于初始化整个事例使用。(此刻物体还未实例化出来,会影响程序的执行顺序) |
Start() | 当前控制脚本第一次执行Update之前调用。 |
Update() | 每帧都执行一次,是最常用的时间函数。 |
FixedUpdate() | 每固定帧绘制时执行一次,和Update不同的是FixedUpdate是渲染帧执行,如果你的渲染效率底下的时候FixedUpdate的调用次数就会下降。FixedUpdate比较适用于物理引擎的计算,因为是跟每帧渲染有关,而Update比较适合做控制。(放置游戏基本物理行为的代码,在Update之后执行) |
LateUpdate() | 在每帧执行完毕调用,他在所有Update结束后才调用,比较适合于命令脚本的执行。官网上例子是摄像机的跟随,都是在所有Upda |