Unity学习笔记-1

本文最后更新于:2023年5月21日 凌晨

Essential Unity Concepts

GameObject

unity中最最基本的东西,可以说你放入游戏中的那些东西都是一个GameObject,什么玩家人物、障碍、摄像机之类的。
在一个GameObject中,又包含了Components,即它的组件(元件),Components可以为GameObject添加一些属性/性质,比如最基本的Transform组件可以控制GameObject的坐标(Position)、旋转(Rotation)和规模(Scale)等。
而脚本(Scripts)也算一种组件,脚本是用来控制GameObject的逻辑的,比如有一个PlayerGameObject,要想使其进行移动,我们就需要编写一个MoveScript,然后将其添加到PlayerComponents中。

Prefabs

即预制件,可以理解为我们做好的GameObject的模板。在我们制作好一个GameObject之后,如果我们想要重复利用,就需要将其保存成Prefab,最简单的保存方法就是将GameObjectHierarchy(层级)选项卡中拖到Project选项卡的Prefabs文件夹中。
保存完了后,什么时候我们想要用到这个GameObject了,就直接从Prefabs文件夹中把它拖到Hierarchy中即可。

创建项目不会默认给你生成Prefabs文件夹!但是我们可以自己创建,一般是在Assets文件夹下创建,即Assets/Prefabs

Tags

即标签,其用于给GameObject贴上标签(从而使得其有一种更为广泛的分类),举个最简单的例子,如果我们想要判断一个GameObject是否为敌人,我们能怎么做呢?(当然是看它是否继承自Enemy抽象类)那就是检查它的标签是否为Enemy标签。
要为一个GameObject贴上Tag很简单,从Hierarchy中选中,然后在Inspector中就能找到Tag了。
现在已经为GameObject添加完Tag了,在脚本中怎么去使用呢?举个简单的例子,现在创建一个行为脚本,让一个GameObject能够注视着有着名为PlayerTagGameObject

1
2
3
4
5
6
7
8
9
10
11
12
13
public class GazeExample: MonoBehaviour {
GameObject player;

void Start() {
// 找到带有 Player 标签的 GameObject
player = GameObject.FindWithTag("Player");
}

void Update() {
// 让当前 GameObject 的视角一直对着 player
transform.LookAt(Player.transform);
}
}

Layers

即层级。层级能允许我们在不相关的GameObject之间添加(定义)通用功能,比如在场景视图中绘制哪些对象应忽略光线投射、或者对相机不可见。要改变一个GameObject的层级,也是在Hierarchy中选中,转到Inspector中即可看见。
要单独选择哪些层级可见,可以在Inspector的上方的Layers(或者说在整个界面的右上角)中选择。
(个人觉得可以理解成画画里边的图层?)


这里有一只爱丽丝

希望本文章能够帮到您~


Unity学习笔记-1
https://map1e-g.github.io/2023/05/20/unity-learning-1/
作者
MaP1e-G
发布于
2023年5月20日
许可协议