如何通過字符控制器在 z 軸上進行恒定運動。我需要我的角色以同樣的速度不斷前進
uj5u.com熱心網友回復:
有幾種方法可以做到這一點。On 是通過代碼簡單地沿 z 軸移動物件,而不關心物理。這將在該方向保持恒定速度。您可以通過將 zPosChange 浮點數替換為表示您想要移動的方向的向量,希望看到這種方法如何擴展到所有方向。這是運動學位置更新。
public float speed = 10;
void Update()
{
float zPosUpdate = gameObject.transform.position.z
zPosUpdate = speed * Time.deltaTime;
gameObject.transform.position = new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, zPosUpdate );
}
另一種方法是使用統一物理系統向剛體組件添加力。為此,您必須首先將剛體和對撞機添加到您正在控制的物件。由于我們想要恒定的速度而不是加速和減速,我不建議這樣做,除非你真的需要物體能夠受到碰撞的物理影響。您將執行與我在此處給出的示例類似的操作,但您將在剛體組件上設定速度,而不是變換位置。
uj5u.com熱心網友回復:
您可以對角色使用“加力”。
character_Rigidbody.AddForce(transform.forward * speed);
uj5u.com熱心網友回復:
你角色的前軸:transform.forward
基本解決方案Transform
:
public float speed = 2f;
public void Update()
{
transform.position = transform.forward * (speed * Time.deltaTime);
}
相對運動Transform.Translate
;
transform.Translate(Vector3.forward * (speed * Time.deltaTime));
基本剛體 velocity
設定器:
private Rigidbody rigidbody;
public void Start()
{
rigidbody = GetComponent<Rigidbody>();
}
public void Update()
{
rigidbody.velocity = transform.forward * speed;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/491253.html