1、了解坐标系
1.左手坐标系和右手坐标系
左手坐标系 左手坐标系
右手坐标系
2.unity中存在世界坐标系和本地坐标系,都是左手坐标系
2、多个物体的中心点:
- pivot(轴心),对应某个物体的中心点
- center(中心),多个物体的中心点
演示:
pivbot center
地形后面再研究
3、组件
1.继承自MonoBehaviour类就是组件类,继而成为组件
2.常用脚本生命周期方法
方法名称 | 调用时间 |
Awake | 最早调用(一般用来实现单例模式) |
OnEnable | 组件激活时,Awake之后调用一次 |
Start | OnEnable之后调用一次 |
FixedUpdate | 固定频率调用一次(即每次调用时间间隔相同) |
Update | 每帧调用一次 |
LateUpdate | Update之后调用一次 |
OnDisable | 组件未激活时,Awake之后调用一次 |
OnDestroy | 被销毁时调用一次 |
3.多脚本执行顺序问题,修改顺序:脚本检查-Execution
4、物体的区分
- Tag(标签)
- Layer(图层)
区别:Layer偏向于不同种类或特性的物体
5、常用API
1.Vector3结构体部分常用属性方法:
属性方法 | 详解 |
normalized | 返回一个标准化向量 |
magnitude | 返回向量的模 |
sqrMagnitude | 返回向量的模的平方 |
zero | 静态属性,返回Vector3(0,0,0) |
one | 静态属性,返回Vector3(1,1,1) |
forward | 静态属性,返回Vector3(0,0,1) |
back | 静态属性,返回Vector3(0,0,-1) |
left | 静态属性,返回Vector3(-1,0,0) |
right | 静态属性,返回Vector3(1,0,0) |
up | 静态属性,返回Vector3(0,1,0) |
down | 静态属性,返回Vector3(0,-1,0) |
Angle | 静态方法,返回两个向量的夹角 |
Distance | 静态方法,返回两个点的距离 |
Lerp | 静态方法,插值运算 |
Dot | 静态方法,返回两个向量的点乘 |
Cross | 静态方法,返回两个向量的叉乘 |
2.Quaternion常用属性方法:
属性方法 | 详解 |
identity | 单位旋转,相当于无旋转 |
eulerAngles | 转换为欧拉角 |
Quaternion | 使用四分量构造四元数 |
Angle | 返回两个旋转之间的角度 |
Euler | 通过欧拉角创建四元数 |
LookRotation | 返回forward向量与参数向量旋转相同旋转相同的四元数,可以理解为看向某向量 |
3.Debug常用属性方法:
方法 | 详解 |
Log | 在“控制台”输出一条信息 |
LogWarning | 在“控制台”输出一条警告信息 |
LogError | 在“控制台”输出一条错误信息 |
DrawLine | 在指定的起始点和终点之间绘制一条直线 |
DrawRay | 在指定的起始点向一个向量绘制一条直线 |
4.GameObject常用属性方法
属性方法 | 详解 |
activeInHierarchy | 游戏物体在场景中真正的激活状态 |
activeSelf | 游戏物体在场景中设置的激活状态 |
tag | 游戏物体的标签 |
layer | 游戏物体的图层 |
transform | 游戏物体的Transform组件 |
name | 游戏物体的名称,为继承属性 |
AddCompoent | 添加组件 |
GetCompoent | 得到某个组件 |
GetCompoents | 得到多个组件 |
GetCompoentInChildren | 在子物体上得到组件 |
GetCompoentInParent | 在父物体上得到组件 |
SetActive | 设置物体的激活状态 |
Find | 静态方法,在场景中根据名称寻找游戏物体并返回 |
FindWithTag | 静态方法,在场景中根据标签寻找游戏物体并返回 |
FindGameObjectsWithTag | 静态方法,在场景中根据标签寻找多个游戏物体并返回 |
Destroy | 静态方法,移除并销毁一个游戏物体,一般用此方法实例化预制件,为继承方法 |
Instantiate | 静态方法,复制一个游戏物体,一般用此方法实例化预制件,为继承方法 |
DontDestroyOnload | 静态方法,设置此游戏物体在切换场景时不会销毁,为继承方法 |
activeInHierarchy和activeSelf区别:
- activeInHierarchy:真正激活状态;
- activeSelf:当前激活状态;
GameObject和gameObject区别:
- GameObject是一个结构体或类(这部分没深究),包含了属性和方法;所有的游戏物件都是这个类型的对象;
- gameObject是实例化的物体,在hierarchy栏上的每一个物体都可视为gameObject;跟C++中的this类似;
- 脚本中的this,指的是脚本本身,而不是游戏物体本身;
5.Time常用属性方法:
属性方法 | 详解 |
deltaTime | 上一帧到这一帧所花的时间 |
fixedDeltaTime | 固定间隔时间 |
time | 游戏开始到现在所花的总时间 |
timeScale | 时间缩放值,默认为1.0 |
6.Mathf常用属性方法:
属性方法 | 详解 |
Deg2Rad | 角度转弧度 |
Rad2Deg | 弧度转角度 |
PI | 圆周率 |
Abs | 绝对值 |
Sin/Cos/Tan | 反正弦/反余弦/反正切 |
Asin/Acos/Atan | 反正弦/反余弦/反正切 |
Clamp | 将数字限制到一个范围内 |
Clamp01 | 将数字限制在0-1内 |
Lerp | 线性插值 |
Max | 返回最大值 |
Min | 返回最小值 |
Sqrt | 返回平方根 |
7.Application常用属性方法:
属性方法 | 详解 |
dataPath | 游戏数据文件夹路径 |
persistentDataPath | 持久化游戏数据文件夹路径 |
streamingAssetsPath | SteamingAssets文件夹路径 |
temporaryCachePath | 临时文件夹路径 |
runInBackground | 控制在后台时是否运行 |
OpenURL | 打开一个URL |
Quit | 退出 |
8.Scene常用属性方法:
属性方法 | 详解 |
buildIndex | 返回场景在Build Settings中的索引 |
isLoaded | 返回场景是否已经加载 |
name | 场景名称 |
path | 场景的相对路径 |
GetRootGameObject | 返回场景中的所有根游戏物体 |
9.SceneManager类的部分常用属性方法:
属性方法 | 详解 |
sceneCount | 当前已加载场景的数量 |
CreateScene | 创建一个场景 |
GetActiveScene | 得到当前激活场景 |
GetSceneByName | 通过名称返回已加载场景 |
LoadScene | 加载场景 |
LoadSceneAsync | 异步加载场景 |
SetActiveScene | 激活场景 |
UnloadSceneAsync | 移除并销毁场景 |
10.Transform常用属性方法:
属性方法 | 详解 |
position | 在世界坐标系中的位置 |
rotation | 在世界坐标系中的旋转 |
eulerAngles | 在世界坐标系中的欧拉角旋转 |
localPosition | 相对于父物体的位置 |
localRotation | 相对于父物体的旋转 |
localScale | 相对于父物体的缩放 |
localEulerAngles | 相对于父物体的欧拉角旋转 |
forward | 在世界坐标系中的自身坐标系的蓝色轴向量 |
up | 在世界坐标系中的自身坐标系的绿色轴向量 |
right | 在世界坐标系中的自身坐标系的红色轴向量 |
LookAt | 旋转物体使forward向量指向目标点,也就是看向某向量 |
Rotate | 旋转物体 |
RotateAround | 绕着某点旋转物体 |
Translate | 在某一方向与距离上进行移动 |
childCount | 当前Transform的子Transform个数 |
parent | 当前Transform的父Transform |
DetachChildren | 解除所有子Transform的关联 |
Find | 查找对应子Transform |
GetChild | 得到对应子Transform |
IsChildOf | 是否为子Transform |
SetParent | 设置父Transform |
区分Transform与Vector3中的向量:
- Transform的up向量永远为物体绿色轴的指向
- Vector3的up向量为固定值
6、输入控制Input类
1.键盘和鼠标
属性方法 | 详解 |
anyKey | 任何按键按下都返回true |
anyKeyDown | 任何按键按下第一帧都返回true |
inputString | 该帧的键盘输入 |
mousePosition | 鼠标指针当前的坐标位置 |
GetKey | 按下按键期间返回true |
GetKeyDown | 按下按键瞬间返回一次true |
GetKeyUp | 松开按键瞬间返回一次true |
GetMouseButton | 按下鼠标键返回true |
GetMouseButtonDown | 按下鼠标键瞬间返回一次true |
GetMouseButtonUp | 松开鼠标键瞬间返回一次true |
2.虚拟轴
Name:Horizontal (默认就是“Horizontal”,这里可以修改它的名字,一般不动它)
Negative Button :Left (负轴,键盘左键)
Positive Button:right (正轴,键盘右键)
Alt Negative Button :a (备用键负轴,A键)
Alt Positive Button :d (备用键正轴,D键)
Gravity :3 (松键后,目标值恢复为0的速度)
Dead : 0.001 (小于此数值为0,都被认为是0)
Sensitivity :3 (按键后,0到目标值的速度)
capture:启用后,按下反方向键,轴数值会设置为0
Invert :交换正轴和负轴的按键
type:虚拟轴类型