void Start();//游戏开始执行一次
void Updata();//每帧调用
void Reset();//在附加或取消附加时触发
Time类
.delta//每帧时长
.fixedTime//从游戏开始到现在的时间
.frameCount//从游戏开始到现在一共运行了多少帧
.timeScale/*得到deltaTime时会除以该值,设置为0用于暂停游戏
也可以设置不同的值来实现设置运动速率的缩放
*/
GameObject类
//1.创建游戏物体(用于创建空游戏物体)
GameObject go=new GameObject("cube");
//2.根据prefab或另外一个游戏物体创建游戏物体
GameObject.Instantiate(prefab);
//3.创建基础物体
GameObject.CreatePrimitive(PrimitiveType.cube);
//给游戏物体添加组件
.AddComponent<组件名>();//也能添加自己的脚本
.activeInHierarchy//获取到游戏物体是否激活(只读)
.SetActive(false);//设置游戏物体激活状态
.tag//获取游戏物体的Tag标签值(用于游戏物体的分类)
//获取游戏物体上的组件
.GetComponent<组件名>();
//查找游戏物体
Find(游戏物体名字);//静态方法
FindGameObjectsWithTag(标签名)//静态方法,负数查找,返回GameObject的数组
//广播发送消息(在游戏物体及其子物体上寻找该方法来执行)
.BordcastMessage(方法名,null,SendMessageOptions.DontRequireReciver);/*
SendMessageOptions.DontRequireReciver表示就算没有接受者也不会报错
*/
//针对某个游戏物体发送信息
.SendMessage(方法名,null,SendMessageOptions.DontRequireReciver);
//针对某个游戏物体以及它所有的父物体
.SendMessageUpwards(方法名,null,SendMessageOptions.DontRequireReciver);
Object类
.name //获取名字
Destroy(object);//静态方法,销毁对象
DontDestroyOnLoad(object);//在加载新场景时,不销毁这个对象
FindObjectOfType<light>();//静态方法,在当前场景中查找某种类型的组件(第一个),不查找未激活的
//为类添加这个特性后,该类在编辑器模式下也会运行
[ExecuteInEditMode]
MoonBehaviour类
.enable//设置组件的激活状态
.name
.tag
.gameObject
.transform
Invoke(方法名,秒);//在x秒后调用方法
IsInvoking("Attack");//判断方法是否处于被调用的状态
InvokeRepeating(方法名,几秒后调用,调用时间间隔);//循环调用
CancelInvoke();//不给参数将所有Invoke都取消,指定参数将指定的Invoke取消
Coroutines//协程方法(不会阻塞线程,不用等待返回),协程方法要在方法前添加IEnumerator
//1.返回值是IEnumerator
//2.返回时使用yieldreturn null/0;
//3.协程方法调用时使用StartCoroutine(method());
yield return new WaitForSeconds();//在协程中,等待x秒
StopCoroutine(协程方法名)//停止协程(怎么开启怎么关闭)
StopCoroutine(IEnumerator对象)//停止协程
//用方法名开启就用方法名关闭,用调用的形式开启,就用IEnumerator关闭
//鼠标相关的函数
//数学类
Mathf
Abs();//绝对值
Clamp();//限定返回值,在min,max中则返回自己,过小返回min,过大返回max
DeltaAngle();//计算2角度间最小差值(夹角)
Cell();//向上取整
Floor();//向下取整
Sqrt();//取得平方根
ClosestPowerOfTwo(x);//取得x离2 4 8 16 32 。。最近的数值
//t一般使用Time.deltaTime,t为负数就是远离,t为正数就是靠近
Lerp(a,b,t);//插值运算,t=0取a,t=1取b,t=0.5取中间(按比例取值),先快后慢
LerpAgle();//插值,0-360度
MoveTowards(a,b,t);//匀速插值,1m/s
PingPong(t,length);//(来回运动)最小值0,默认t=0,如果t增加且在length范围内则t正常增加,如果t增加超过length,则反而减小
Input//输入流
Getkey();//获取持续键盘事件
GetKeyDown();//获取按下键盘事件
GetKeyUp();//获取抬起键盘事件
GetMouseButton(x);//获取鼠标按键持续按下,x=0,1,2表示左键,右键,中键
GetMouseButtonDown();//鼠标按键按下
GetMouseButtonUp();//鼠标按键抬起
GetButton();//监测虚拟按键
GetButtonDown();
GetButtonUp();
GetTouch();//触摸监测,easyTouch插件用于监测触摸手势等
.anyKey;//监测按下任意键(鼠标键盘)
.mousePosition//获取鼠标在屏幕上的位置,像素为单位
Vector2结构体
Vector2 a=new Vector2(2,3);
a.magnitude//获取到a的长度
a.sqrMagnitude//获取到a的x平方+y平方
a.normalized//获得a单位向量,保持方向不变,长度变为1
Angle(vector2 x,Vector2 y);//取得2向量夹角
Distance(vector2 x,Vector2 y);//取得2向量间长度
Vector3结构体
Project(Vector3 vector,Vector3 onNormal);//获取一个向量在另一个向量上的投影
Reflect();//获得反射向量
Slerp();//角度插值(用于转向)
Random类
Ranage();//静态方法,取得一个随机数
InitState(int i);//设置随机数种子,种子相同,产生的随机数序列就一样
rotation();//获得一个四元数
insideUnitCircle();//在一个点附近半径为1的圆里生成随机点
insideUnitSphere();//在一个半径为1的球体中随机Vector3点
Quaternion四元数结构体
Euler(vector3 x);//将一个欧拉角转换为一个四元数
LookRotation();//让一个游戏物体面向一个Vector3向量
Rigdbody刚体组件类
继承自组件类
.position//控制位置(移动一次)
MovePosition(Vector3 x);//插值运算持续移动
//不论是移动位置还是修改旋转,刚体更高效
通过AddForce施加力控制运动
AddForce(Vector3 x,力的大小);
Camera摄像机类
摄像机类常用于射线检测,获取屏幕位置,渲染
AppLication类
文件操作,平台检测,打包的设置
切换加载场景
SceneManger类
需要引入命名空间UnityEngine.SceneMangement
LoadScene();加载场景