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.******move(); //可模擬簡單運動。並自動適應重力,返回值表示當前角色是否著地
5.2 charactercontroller.move(); //更複雜的運動
Unity中物體的移動方式
關於unity中控制物體移動的方式,大致可以分為兩類 一類是利用transform來實現移動,一類是利用rigidbody來實現移動。這是我自己常用的兩類。1 transform控制物體移動的實現方式 transform.transla dir time.deltatime speed dir是要移...
unity的三種移動方式
第一種移動方式 首先在方法外宣告剛體 private rigidbody body 為了明顯,可定義乙個速度 public float speed void start void update if input.getkey keycode.s if input.getkey keycode.a i...
Unity 物體移動的三種方式
在unity3d中,有多種方式可以改變物體的座標,實現移動的目的,其本質是每幀修改物體的position。通過transform元件移動物體 transform 元件用於描述物體在空間中的狀態,它包括 位置 position 旋轉 rotation 和 縮放 scale 其實所有的移動都會導致pos...