Unity常用API(二)
五. Coroutines:协程:
1、定义协程:IEnumerator 方法名()
{
yield return 0/null ;yield return new WaitForSeconds(1.0f); //等待一定时间在运行下面的代码
}
2、开启协程:StartCoroutines(方法名());说明:协程开启会继续执行下面代码,不会等协程方法运行完再执行接下来的方法
3、开启与关闭协程时,StartCoriutine(参数)、StopCoroutine(参数) 其中的参数要互相对应,如果传递的是方法名,则两个方法中的参数就要是方法名,如果是IEnumerator的返回值,则其中两个方法发的参数就要是IEnumerator的返回值
1、 private IEnumerator coroutine;
coroutine = WaitAndPrint();
StartCoroutine(coroutine);
StopCoroutine(coroutine);
2、StartCoroutine(“WaitAndPrint”);
StopCoroutine(“WaitAndPrint”);
4、StopAllCoroutines() 停止所有的协程,不管你是怎么调用的
六. OnMousexx鼠标触发事件: 如果是通过Collider进行触发检测的话,则要在设置中打开允许进行射线检测。
- OnMouseDown(): 当鼠标按下的时候触发,按一次触发一次
- OnMouseDrag(): 当鼠标按住不放的时候一直触发,是每一帧进行触发
- OnMouseUp(): 当鼠标抬起的时候触发,只执行一次
- OnMouseEnter(): 当鼠标进入的时候触发,进入一次触发一次
- OnMousetOver(): 当鼠标在触发物体的上面时,则一直触发
- OnMouseExit(): 当鼠标移出的时候触发
- OnMouseUpAsButton() 相当于是按钮的功能,当鼠标在同一个游戏物体上按下抬起的时候才会触发,按下与抬起不在同一个游戏上的话则不会进行触发。
七. Mathf类:所有的成员均为静态的
1.Mathf.Abs() 返回绝对值的
2.Mathf.Ceil() 向上取整的,10.1—>11
3.Mathf.Clamp(value,min,max) 如果value的值在min–max之间的话就返回value,但是如果value的值小于min,则返回min,如果value的值大于max,则返回max,一般是用在控制角色血量,当玩家的血量减少的时候,不会出现出现低于0和大于100的情况 hp= Mathf.Clamp(hp,0,100);
4.Mathf.ClosePowerOfTwo(value): 取得离value的2次方最近的值
5.Mathg.DeltaAngke: 取得两个角度之间的最小夹角
6.Mathf.Floor 向下取整
7.Mathf.Pow(i,j) 取得i的j次方8.Mathf.MoveToWards() 一般用来做移动控制,是匀速的运动,加速度固定的9.Mathf.Lerp() 差值运算,一般是用来控制动画、运动,越往后运行的越慢的。10.Mathf.PingPong(t,maxValue) 类似乒乓球的来回运动,起始 值是0,通过t变量来控制值由0向maxValue移动,当t大于maxValue的时候又向0进行移动,然后就这样的来回往复运动,一般t变量用时间Time.deltatime来进行控制的。
八. Input输入类:
1.GetKey() 按键一直按着时触发
2.GetKeyDown 按键被按下那一刻进行触发3.GetKeyUp 按键被按下后抬起时触发 4.GetMouseButton(0/1/2) 1:左键 2:右键 3:中键 鼠标一直按着时触发5.GetMouseButtonDown() 鼠标按下那一刻触发、
6.GetMouseButtonUp() 鼠标抬起的那一刻时触发
7.GetButtonDown()
8.GetButton()
9.GetButtonUp() 这三个的参数是用户自定义的虚拟按键进行触发,其他的和上面的一样
10.GetAxis(“虚拟轴名”) 通过按下的虚拟轴来返回-1~1之间的值,开始值是0,然后向-1/1进行渐渐的变化,有一定的加速度。一般用来控制运动的,比如是赛车的加速运动等
11.GetAxisRaw() 其他的和GetAxis差不多,就是少了渐变效果,返回值只有 0 1 -1三个
12.anyKeyDown 当任何按键被按下(包括鼠标按键)时返回trueanyKey 当任何按键被按着(包括鼠标)时返回true
13.mousePosition 返回鼠标在屏幕上的像素坐标,【屏幕坐标】z轴衡为0的