unity常用api整理
1.事件函数。
Reset() :重置-被附加脚本时、在游戏物体的组件上按Reset时会触发该事件函数
Start() :开始-在游戏初始化时会执行一次
Update() :更新-每一帧都会运行这个方法
FixedUpdate():固定更新-会在指定帧调用该方法多少次
LateUpdate(): 后期更新-晚于Update的运行顺序,但是FPS和Update是一样的
Awake() Start() :唤醒-都是在游戏物体初始化运行一次,但是Awake的运行顺序高于Start的,并且只要脚本中存在Awake方法,则无论是否挂载了该脚本都会执行该方法
OnEnable():启用-当将物体的SetActive设置为true时就会自动调用调用该方法
OnDestory(): 销毁,关闭-当关闭游戏则会调用该方法
2.Time类时间函数。
Time.time 时间-表示从游戏开发到现在的时间,会随着游戏的暂停而停止计算
Time.timeSinceLevelLoad 从当前场景加载到现在的时间-表示从当前Scene开始到目前为止的时间,也会随着暂停操作而停止
Time.deltaTime 增量时间-表示从上一帧到当前帧时间,以秒为单位。【一般用来控制角色、动画的运动】
Time.frameCount 总帧数
Time.realtimeSinceStartup 自开始后的真实事件-表示自游戏开始后的总时间,即使暂停也会不断的增加
3.GameObject类函数。
GameObject go=new GameObejct("游戏物体名"); //游戏对象-一般是用来创建空的游戏来存放其他东西的
GameObject.Instantiate(prefab) //示例-根据Prefab或者是另外一个游戏物体来创建(克隆Colon)
为游戏物体添加组件, 其中组件可以是我们自己自定义的脚本GameObject.AddComponent<组件名>
GameObject.activeSelf 激活自身-自身的激活状态,与父类无关,只与自身有关
GameObject.tag 标签-游戏物体的tag标签,具体的由程序员自定义设置
GameObject.SetActive(false/true) 设置激活状态-通过参数的控制来设置其游戏物体的激活状态
name: 名字-名字,调用该变量,则无论是通过GameObject还是Component都是返回游戏物体的名字
Destroy() :删除-删除游戏物体,但是不会立马在unity中删除,而是会先进行回收
FindObjectsType<> : 寻找物体类型-通过类型来进行查找,是进行全局的查找
FindGameObjectWithTag :寻找带有标签的游戏物体-如果查到的是多个,则只返回查找到的第一个
FindGameObejctsWithTag 寻找带有标签的游戏物体们-返回查找到的游戏物体集合
Cube cube = target.GetComponent<Cube>(); 得到组件-返回一个对应的组件
Cube[]cc= target.GetComponents<Cube>(); 得到组件们-返回该游戏物体上所有符合条件的组件数组
4.MonoBehaviours。
enabled: 使-返回该组件是否被激活或者是被禁用,可以通过该变量来进行设置
isActiveAndEnabled: 是激活且能够使用-只能返回该组件是否激活的标志位,不能设置该变量,为只读的
tag :标签-该组件所对应的游戏物体的标签
name :名字-该组件所对应的游戏物体的名字
Invoke("方法1",float time): 调用-在等待time的时间后调用方法1
bool i= IsInvoking("方法1") 正在被调用-如果方法运行则返回true,反之返回false
InvokeRepeating("方法1",time,number): 重复调用-等待time时间后,会重复开始运行方法1,每秒钟运行number次
CancelInvoke() 取消调用-会暂停通过Involve/InvokeRepeating的运行
5.协程。
定义协程:IEnumerator 方法名()
{
yield return 0/null ;
yield return new WaitForSeconds(1.0f); //协程-等待一定时间在运行下面的代码
}
开启协程:StartCoroutines(方法名());
说明:协程开启会继续执行下面代码,不会等协程方法运行完再执行接下来的方法
StopAllCoroutines() 停止所有的协程,不管你是怎么调用的
6.OnMouse。
OnMouseDown(): 鼠标按下-当鼠标按下的时候触发,按一次触发一次
OnMouseDrag(): 鼠标拖拽-当鼠标按住不放的时候一直触发,是每一帧进行触发
OnMouseUp(): 鼠标抬起-当鼠标抬起的时候触发,只执行一次
OnMouseEnter(): 鼠标进入-当鼠标进入的时候触发,进入一次触发一次
OnMouseOver(): 鼠标在上方-当鼠标在触发物体的上面时,则一直触发
OnMouseExit(): 鼠标离开-当鼠标移出的时候触发
7.Mathf类:所有的成员均为静态的。
Mathf.Abs() 返回绝对值的
Mathf.Pow(i,j) 取得i的j次方
Mathf.MoveToWards() 一般用来做移动控制,是匀速的运动,加速度固定的
Mathf.Lerp() 差值运算,一般是用来控制动画、运动,越往后运行的越慢的
8.Input输入类:
GetKey() 得到按键-按键一直按着时触发
GetKeyDown 按键按下-按键被按下那一刻进行触发
GetKeyUp 按键抬起-按键被按下后抬起时触发
GetMouseButton(0/1/2) 得到鼠标按键-1:左键 2:右键 3:中键 鼠标一直按着时触发
GetMouseButtonDown() 鼠标按下-鼠标按下那一刻触发
GetMouseButtonUp() 鼠标抬起-鼠标抬起的那一刻时触发
Getaxis("虚拟轴名") 通过按下的虚拟轴来返回-1~1之间的值
9.Vector2:二维向量
magnitude: 大小-返回向量的长度
normalized:单位化-返回这个向量长度为1的矢量,不管这个向量多长,也是返回1的矢量
Normalize() 无参数的,也是向量化,但是调用该方法会改变原向量值,使其的值被向量化
10.四元数 Quaternion
.eulerAngles 将四元数转变为欧拉角
Euler() 将欧拉角转变为四元数
11.Rigidbody:刚体-刚体组件,控制角色的移动
MoveRotation 旋转-用来控制刚体的旋转
AddForce() 增加力-为刚体添加力
12.Camera:相机组件
Ray ray = cameraMain.ScreenPointToRay(Input.mousePosition); //获得相机到鼠标之间的射线
RaycastHit hit; //用来存放射线检测到的游戏物体的信息的
bool temp = Physics.Raycast(ray, out hit); //进行射线检测
13.SceneManager场景类
SceneManager.LoadScene() 加载场景-加载下一个场景,一般是用在另一个场景不是太大的情况下
sceneCount 场景个数-获得当前加载的场景个数
GetActiveScene() 得到激活场景-获取已经加载的当前场景的信息
GetSceneAt(index) 加载index索引的场景
activeSceneChanged 激活场景变更-当有新场景被加载的时候就会调用这个事件
sceneLoaded 场景加载-当有新场景加载完成的时候就会触发这个事件
14.射线检测:一般射线检测要在射线检测的范围内,并且被检测物体要有Collider
Ray ray=new Ray(起点,方向)
PaycastHit hit; //hit中存放的是射线检测的碰撞信息
Ray ray = new Ray(this.transform.position + transform.forward, transform.forward); //创建射线
RaycastHit hit; //存储射线检测到的游戏物体信息
15.CharacterController角色控制器
.SimpleMove(【vector3】) 简单移动
.isGrounded 在地面上-判断是否到地面上,bool值
文章来源:Unity常用API - 简书 (jianshu.com)