1 transform.position+ = Vector3.forward*Time.deltaTime;
transform.Translate(Vector3.forwardTime.deltaTime); //固定方向移动
transform.Translate(Vector3.forwardTime.deltaTime,Space.Type); //固定方向移动,参照坐标系
transform.Translate(0,Time.deltaTime,0,Space.Type); //三维空间移动
transform.Translate(0,Time.deltaTime,0,Camera.main.transform); //三维空间移动,相对某个参照系移动,若相对参照系为null则默认参照世界坐标系
世界坐标系
2.1 transform.Translate(new Vector3(0,0,1)*Time.dealtTime,Space.World);
自身坐标系
2.2 transform.Translate(new Vector3(0,0,1)*Time.deltaTime,Space.Self);
3.1 Vector3.Lerp(StartPos,EndPos,t); //其中t为插值【0-1】0时在startpos,1时在endpos
3.2 Vector3.Slerp(StartPos,EndPos,t); //球形插值,需要同时求圆心位置,和向量来确定移动路径
Vector3 center = (startpos - endpos)*0.5f;
center -= new Vector3(x,y,z); //这里x,y,z 移动圆心位置,当x,y,z均为0时,圆弧为半圆,且弧线方向为xz面
var startVec = startpos - center;
var endVec = endpos - center;
transform.position = Vector3.Slerp(startVec,endVec,t) //t为插值【0-1】,同线性插值
transform.position +=center;
3.3 Vector3.MoveTowards(startVec,endVec,t) //同线性插值,增加了限速
3.4 Vector3.SmoothDamp(transformPos,TargetPos,ref Vector3.zero,SmoothTime); //线性移动,越靠近目标位置速度越小,适合相机跟随。
4.1 rigbody.Velocity
4.2 rigbody.AddForce(Vector3 direction);
4.3 rigbody.MovePosition()
5.1 CharacterController.SimpleMove(); //可模拟简单运动。并自动适应重力,返回值表示当前角色是否着地
5.2 CharacterController.Move(); //更复杂的运动