Vector3.Cross(a,b)叉乘
Vector3.Project(vector,onNormal)Vector在onNormal方向上的投影
Vector3.Reflect(inDirection(入射防线),inNormal(法线))
Vector3.Slerp(a,b,t)与lerp一样也是在ab之间差值,不同的是 向量被视为方向而不是空间中的点。返回矢量的方向用角度插值,其大小在从和到的大小之间插值。
Vector3.Cross(a,b)叉乘
Vector3.Project(vector,onNormal)Vector在onNormal方向上的投影
Vector3.Reflect(inDirection(入射防线),inNormal(法线))
Vector3.Slerp(a,b,t)与lerp一样也是在ab之间差值,不同的是 向量被视为方向而不是空间中的点。返回矢量的方向用角度插值,其大小在从和到的大小之间插值。
Vector2.Equals(向量1,向量2)判断向量12是否相同
Vector2.Normalize()将向量单位化,即把向量变成一个单位向量
Vector2.Angle(1,2)取得1和2之间的夹角
Vector2.ClampMagnitude()和之前的Clamp大同小异,不过这次是针对向量
Vector2.Distance(vector2a,vector2 b)取得ab向量之间的距离
vector2.Lerp(a,b,t)
Vector2.Unlamped(a,b,t)t的值可以大于1
Vector2.Max/Min(a,b)
Vector2.MoveTowards(a,b,t)由a到b移动,t为移动距离
Vector2.Dot(a,b)点乘
Vector2类
down(0,-1)
left(-1,0)
one(1,1)
right (1,0)
up(0,1)
zero(0,0)
Vector2.normalized 取得该方向的基向量
Vector2.magnitude 得到向量的长度
Vector2.sqrtMagnitude 得到长度的平方(没开根号的时候)
Input.GetTouch()手机触摸
可以用easyTouch插件
Input.Anykey是一个bool值随意按哪个键或者按鼠标键都会改为true,类型和GetKey相同,也有down和up
Input.MousePosition 鼠标光标的位置
Input.GetAxis("")返回值由0渐变到1
Input.GetAxisRaw("")返回值没有渐变,按下立刻变成1与-1
在Manual中的Creating Gameplay中的Input ConventionalGameInput里可以找到对应键名
Input.GetMouseButton()括号中012,0左键1右键2中键
GetButton和mouse的一样,也有down和up
Input.Getxxx
GetKey("键名,如up"/KeyCode.UpArrow)
GetKeyDown(同上)
GetKeyUp(同上)
Down是按下的那一帧返回true,Up是抬起,与GetKey不同的是Down和Up只有按下和抬起那一帧是true,getkey在按下后抬起前都是true
Input类
在Edit projectsetting中可以设置
Input.imelsSelected()可以判断输入法
Mathf.PingPong(t,length)返回值0-length之间的一个值
t是运动速度
Mathf.LerpAngles()保证差值还是在360之内
Mathf.,MoveTowards(current,target,maxDelta)和lerp的功能相似,不过是匀速运动,并且值不会超过目标值
maxDelta如果设置为正则是向目标移动,负数则是原理目标
Mathf.Lerp(a,b,t)在a和b之间t的位置插入数并返回这个数,t是一个比例
Mathf.DeltaAngle(ange1,angle2)求两个角度的最小夹角,角度大于360会自动求余
Mathf.Exp(float power)e的power次方
Mathf.Floor(float f)向下取整,clamp是向上取整
Lerp()插值运算
Mathf.Max()自动取得最大值
Mathf.Movetowards(min,max,change)
Mathf.Pow(f,p)f的p次方
Mathf.Sqrt取得平方根
Mathf.ClosetPowerOfTwo(f)取得离f最近的2的次方,比如f=7就会返回8
Mathf中的常用方法
Mathf.Abs()取绝对值
Mathf.Ceil()向上取整(10.2取到11,返回float类型)
Mathf.CeilToInt()与上相同,不过返回的是int类型
Mathf.Clamp(float value,float min,float max)如果value小于min则返回min,大于max则返回max,大于min小于max则返回value本身,即把一个值限制在范围之内
Mathf.Clamp01(float value)即min为0max为
一般情况下,比如在被点燃的情况下
Mathf
Mathf.Rad2Deg()弧度转换成度数
Mathf.Deg2Rad()
Mathf.Epslion()代表无限小的一个小数
Mathf.Infinity()代表无限大的数,Infinite前可加Negative表示负无穷
Mathf.Pi()圆周率
如果想用Onmousexxx()必须要在附加该脚本的游戏物体身上添加collider
如果碰撞器为Trigger则保证Edit pysics中设为true
OnMouseDown()鼠标 按下
OnMouseUp()鼠标抬起
OnMouseDrag()按下没有抬起,即拖拽
OnMouseEnter()鼠标移到物体上时触发
OnMouseOver()鼠标呆在物体上时
OnMouseExit()鼠标从物体身上移开
OnMouseUpAsButton()可以用来检测单击某物体
关闭协程的时候要和开启时相一致
()内如果是方法名,关闭时也要用方法名
如果是ienumerator,关闭时也要用ienumerator
两个必须相互对应
协程暂停
yield return new WaitForSeconds()
协程方法Coroutines
方法遇到协程方法时,两个方法一起执行,与普通方法不同,普通方法会等待这个普通方法执行完后继续向下进行
协程自身可以暂停
返回值:IEnumerator
返回参数: yield return
调用:在方法内使用StartCoroutine(协程名());
IsInvoking("")可以用来判断括号内方法是否正在被调用
Invoke()会把括号内的方法加进队列里,并执行后面的等待时间,这时间内IsInvoking会显示为true
InvokeRepeating(方法,4,2)4s后调用第一次,之后每间隔2s调用一次
isActiveAndEnabeld
禁用脚本禁用的是update方法