游戏效果视频地址:https://www.bilibili.com/video/av67545218
在开始打码之前
首先我们通过回答几个问题,以此来加深对unity的理解。
游戏对象(GameObjects) 和 资源(Assets)的区别与联系
GameObject在unity官方文档中是有描述的:Base class for all entities in Unity Scenes. 即GameObject是在编写代码时会用到的一个概念,会直接出现在游戏场景中;我们可以通过层次结构来组织不同的游戏对象,同时也可以通过对象池来管理存储。而Assets是素材,包含常用的图像视频甚至脚本,可以被加载到一个或多个对象上来使用,通常是以文件夹的形式来组织的。
下载游戏案例,分别总结资源、对象组织的结构(指资源的目录组织结构与游戏对象树的层次结构)
我随便下载了一个学习中的项目。这里我们可以看出,Assets是以文件夹的形式组织的,而且命名简单直接,这里我们选中Audio,就可以看到文件夹内的就都是游戏用到的音频文件。
编写一个代码,使用 debug 语句来验证 MonoBehaviour 基本行为或事件触发的条件
- 基本行为包括 Awake() Start() Update() FixedUpdate() LateUpdate()
- 常用事件包括 OnGUI() OnDisable() OnEnable()
代码如下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour {
void Awake() {
Debug.Log ("Awake");
}
void Start () {
Debug.Log ("Start");
}
void Update () {
Debug.Log ("Update");
}
void FixedUpdate() {
Debug.Log ("FixedUpdate");
}
void LateUpdate() {
Debug.Log ("LateUpdate");
}
void OnGUI() {
Debug.Log ("GUI");
}
void OnDisable() {
Debug.Log ("Disable");
}
void OnEnable() {
Debug.Log ("Enable");
}
}
从console的输出中可以看出,程序会在一开始调用Awake,Enable和Start各一次。
然后在执行的过程中,每一帧依次调用FixedUpdate,Update以及LateUpdate,并调用两次OnGui。
最终在结束程序的时候调用一次OnDisable。
查找脚本手册,了解 GameObject,Transform,Component 对象
分别翻译官方对三个对象的描述(Description)
GameObject:
Base class for all entities in Unity Scenes.
Unity场景中所有实例的基类。
Transform:
Position, rotation and scale of an object.
一个对象的位置、旋转角度和缩放。
Component:
Base class for everything attached to GameObjects.
附着在一个GameObject的所有事物的基类。
描述下图中 table 对象(实体)的属性、table 的 Transform 的属性、 table 的部件
table对象的属性
- activeInHierarchy:GameObject是否在场景中处于active状态
- activeSelf:GameObject的本地活动状态
- isStatic:Gam