Appearance
Unity基础
脚本生命周期
方法名称 | 调用时间 |
---|---|
Awake | 最早调用。在此可以实现单例模式 |
OnEnable | 组件激活后调用。Awake后调用一次 |
Start | 在Update前调用一次,一般在这里设置初始值 |
FixedUpdate | 固定频率调用方法 |
Update | 帧率调用方法,每帧调用一次 |
LateUpdate | Update每调用完一次,紧跟着调用一次 |
OnDisable | 组件未激活时调用 |
OnDestroy | 被销毁后调用一次 |
常用API
Debug
Debug类用于调试,其结果是在Console中打印出相关信息。
方法 | 详解 |
---|---|
Log | 控制台面板中输出一条消息 |
LogWarning | 控制台面板中输出一条警告消息 |
LogError | 控制台面板中输出一条错误消息 |
DrawLine | 在指定的起始点和终点之间绘制一条直线 |
DrawRay | 在指定的起始点向一个向量绘制一条直线 |
GameObject
属性方法 | 详解 |
---|---|
activeInHierarchy | 游戏物体在场景中真正的激活状态 |
activeSelf | 游戏物体在场景中设置的激活状态 |
tag | 游戏物体的标签 |
layer | 游戏物体的图层 |
transform | 游戏物体的Transform组件 |
name | 游戏物体的名称 |
AddComponent | 添加组件 |
GetComponent | 得到某个组件 |
GetComponents | 得到多个组件 |
GetComponentInChildren | 在子物体上得到组件 |
GetComponentInParent | 在父物体上得到组件 |
SetActive | 设置物体的激活状态 |
===== | ===== |
Find | 静态方法,在场景中根据物体名称寻找游戏物体并返回 |
FindWithTag | 静态方法,在场景中根据标签寻找游戏物体并返回 |
FindGameObjectsWithTag | 静态方法,在场景中根据标签寻找多个游戏物体并返回 |
Destroy | 静态方法,移除并销毁一个物体 |
Instantiate | 静态方法,复制一个游戏物体。一般用此方法实例化预制体 |
DontDestroyOnLoad | 静态方法,设置此游戏物体在切换场景时不会销毁 |
Time 时间类
属性方法 | 详解 |
---|---|
deltaTime | 上一帧到这一帧所花的时间 |
fixedDeltaTime | 固定间隔时间 |
time | 游戏开始到现在所花的总时间 |
timeScale | 时间缩放值,默认为1.0 |
Mathf 数学类
属性方法 | 详解 |
---|---|
Deg2Rad | 角度转弧度 |
Rad2Deg | 弧度转角度 |
PI | 圆周率 |
Abs | 绝对值 |
Sin/Cos/Tan | 正弦/余弦/正切 |
Asin/Acos/Atan | 反正弦/反余弦/反正切 |
Clamp | 将数字限制在一个范围 |
Clamp01 | 将数字限制在0~1 |
Lerp | 线性插值 |
Max | 返回最大值 |
Min | 返回最小值 |
Sqrt | 返回平方根 |
Application 应用类
该类主要与程序进行交互
属性方法 | 详解 |
---|---|
dataPath | 游戏数据文件夹路径 |
persistentDataPath | 持久化游戏数据文件夹路径 |
streamingAssetsPath | StreamingAssets文件夹路径 |
temporaryCachePath | 临时文件夹路径 |
runInBackground | 控制在后台时是否运行 |
OpenURL | 打开一个URL |
Quit | 退出 |
多线程
csharp
using System.Threading;
using UnityEngine;
public class Test : MonoBehaviour
{
void Start()
{
// 创建多线程
ThreadStart ts = new ThreadStart(threadTest);
Thread thread = new Thread(ts);
// 开始多线程
thread.Start();
}
void threadTest()
{
// 该方法中的代码均在子线程中调用
Debug.Log("线程中");
// 线程休眠
Thread.Sleep(5000);
Debug.Log("5s过去了");
}
}
csharp
using System.Threading;
using UnityEngine;
public class Test : MonoBehaviour
{
void Start()
{
Debug.Log("忙活");
Debug.Log("忙活");
Debug.Log("忙活");
// 开始多线程
ThreadStart ts = new ThreadStart(MTest);
Thread thread = new Thread(ts);
thread.Start();
Debug.Log("继续忙活");
Debug.Log("继续忙活");
Debug.Log("继续忙活");
}
void MTest()
{
Debug.Log("开始烧水");
Thread.Sleep(5000);
Debug.Log("结束烧水");
}
}
协程的使用
使用协程的类必须继承自MonoBehaviour
csharp
using System.Collections;
using UnityEngine;
public class Test : MonoBehaviour
{
private void Start()
{
Debug.Log("忙活");
StartCoroutine(ITest());
Debug.Log("继续忙活");
}
IEnumerator ITest()
{
Debug.Log("干点别的");
yield return new WaitForSeconds(5);
Debug.Log("干完了");
}
}