1. 程式人生 > >物體移動 u3d學習總結筆記本

物體移動 u3d學習總結筆記本

目錄

1.Transform移動

2.Rigidbody移動

3通用


//==============================================

1.Transform移動===================================


Translate()
//軸移動

物體以relativeTo(Fighter.transform)為參照系,沿著translation運動|translation|的距離。如果relativeTo預設將

以Space.Self為預設值。//恆速移動

transform.Translate(Vector3.forward * ShootSpeed * Time.deltaTime, Fighter.transform);

返回目錄

2.Rigidbody移動====================================

velocity()

這種方法只能適用於剛體,因為velocity是剛體特有的屬性。//改速度移動

  gameObject.GetComponent<Rigidbody>().velocity = Vector3.forward * MoveSpeed;

MovePosition()
//讓物體移動到新的位置position。//恆速移動
//適用於頻繁改變,推薦使用這種,較為平滑

rb.MovePosition(transform.position + transform.forward * Time.deltaTime);

AddForce()

playerRgd.AddForce(dir*force);//方向與力道
//給剛體增加一個力。//炮彈加速

playerRgd.AddRelativeForce(dir*force);
//新增一個力到剛體。相對於本地座標。

返回目錄

3通用====================================

Vector3.MoveTowards()

//向著目標點target,恆速移動

transform.position = Vector3.MoveTowards(transform.position, target, MoveSpeed * Time.deltaTime);

//Rigidbody.position
     

Vector3.Lerp()

//控制物體向Target移動,插值移動

gameObject.transform.localPosition = Vector3.Lerp(transform.position, Target, MoveSpeed * Time.deltaTime);

// position是世界座標中的位置,可以理解為絕對座標 
// localPosition是相對於父物件的位置,是相對座標,我們在transform欄看到的是相對座標 
// 如果物件是一級物件,position和localPosition是相同的
    

Vector3.SmoothDamp()

//此方法一般用於攝像機的平滑移動。

transform.position = Vector3.SmoothDamp(transform.position, targetPosition, ref velocity, smoothTime);
//Rigidbody.position
    

返回目錄