Unity常用API(三)

九.Vector2;二维向量

1.magnitude: 返回向量的长度
2.normalized; 返回这个向量长度为1的矢量,不管这个向量多长,也是返回1的矢量,只是返回值,不对原向量的值产生影响3.Normalize() 无参数的,也是向量化,但是调用该方法会改变原向量值,使其的值被向量化 了
4.ClampMagnitude() ;将一个向量限制在参数中指定的长度之间
5.MoveToWards() 用来做匀速的运动,由一个位置向另一个位置进行移动
6.sqrMagnitude 对求向量的的长度时不进行开平方根运算了,减少性能的损耗,一般是用来比较两个向量的长度大小的。
扩充:向量是结构体,为值类型,修改其中的变量的时候要整体进行修改,不能单独的进行单个变量的赋值修改

十. Vector3:三维变量

1.Cross() 插乘运算【左手法则】,通过两个向量来获得另一个向量的方向,然后进行相关的判断
2.Project() 投影运算
3.Reflect() 反射运算
4.Slerp() 按照角度进行插值,与lerp的按照位置信息进行插值的,一般用在炮台的旋转,使旋转的更加平滑

十一. Random随机数类:

1.InitState(): 通过参数指定的种子,然后再调用Range()产生随机数的时候会依据种子来进行生成,则每一次运行所生成的随机数都是一样的,是伪随机数。一般要生成的随机数不同,可以设置参数为2.System.DataTime.Now.Ticks:通过时间戳来完成 insideUnitFCircle :在单位为1的园内随机生成一个位置信息,如果要在更大的圆中生成,则可以在后面圆的半径信息。一般用来控制随机生成敌人的位置信息3.insideUnitSphere: 在单位为1的球内随机生成一个位置信息,如果要在更大的球中生成,则可以在后面圆的半径信息。

十二. 四元数 Quaternion:

欧拉角【eylarAngles】与面板中的值对应和四元数【rotation】之间是可以进行转换的,一般欧拉角是用来让用户可以直观的看到的,而四元数是用来控制内部的运算 的。

  1. .eulerAngles 将四元数转变为欧拉角
  2. Euler() 将欧拉角转变为四元数
  3. .LookRotation() 让玩家通过设置四元数来进行望向敌人的旋转,将向量方向转变为四元数
  4. Vector3 temp = enemy.position - player.position; //获得两个位置信息之间的变量,是主角望向敌人,所以要设置向量的方向是指向敌人的
    enemp.y = 0; //如果不想主角在望向他的时候出现低头的情况,也就是y轴的值出现了变化了。
    player.rotation= Quaternion.LookRotation(temp);
    slerp() 在做朝向的旋转的时候,不建议使用lerp,而是建议使用slerp,使其的旋转朝向更为平滑,更加的自然
    Quaternion target= Quaternion.LookRotation(temp);
    player.rotation = Quaternion.Slerp(player.rotation, target, Time.deltaTime); //插值的缓慢旋转