私はスクリプトを使って移動することができ、簡単な円持っていると、オブジェクトの同じ旋回半径:ユニティ - 異なる速度
public float speed = 3f;
public float rotationSpeed = 200f;
private float horizontal = 0f;
void Update()
{
horizontal = Input.GetAxisRaw("Horizontal");
}
void FixedUpdate()
{
transform.Translate(Vector2.up * speed * Time.fixedDeltaTime, Space.Self);
transform.Rotate(Vector3.forward * -horizontal * rotationSpeed * Time.fixedDeltaTime);
}
問題は、私は異なる速度で同じ旋回半径を維持したいということです。 は今、私は速度も大きくなっている半径を回す増加していたとき:
私はこれをどのように行うことができますか?スピードと回転スピードを上げるためにある種の比率を使用する必要がありますか?
エラーを再現する完全なコード例が役立ちます。 – Aybe
私は手動で速度値を変更します(たとえば、3fから5fへ)。将来的には時間とともに速度が上がります –
これは微積分に関する質問です...本質的に、半径を一定に保つために、速度に関して回転速度がどのように変化するかを計算しなければなりません。 –