2016-09-21 7 views
0

私はUnityでブレークアウトスタイルのゲームをC#を使用して作業しており、ボールが移動する角度/方向を変えずに時間の経過とともにボールのスピードを上げる最良の方法を知りたかったパドルと衝突した後、同じ方向/角度(例えば45度)でボールを移動させたい。方向を一定に維持しながらユニティを増やすユニコーン

まず、パドルの左側のボックスコライダーに添付されている以下の簡単なコードを使用して、ボールを必要に応じて左に移動させます。これは正しい角度になりますが、時間の経過とともにスピードを上げたかったのですが、どうすればよいか分かりませんでした。

void OnCollisionEnter2D(Collision2D col) { 

    if (col.gameObject.tag == "ball") { 
     col.gameObject.GetComponent<Rigidbody2D>().velocity = new Vector2 (-10f, col.gameObject.transform.position.y); 
    } 
} 
+0

最大速度に到達したい、または継続的に高速化したいですか? –

+0

速度に触れないでください。代わりにAddForceを使用して、次に何が起こるかを物理学者に把握させてください。時間をかけてスピードアップするには、ボールのUpdate()メソッドを使用します。例えば。 if(isBallSpeeding)[ballGOのRB2D] .AddForce(amount、type); –

+0

は絶えず速くなります – Kaz

答えて

1

私は、ベクトルに速度変数duhを掛ける最も基本的な解決法を試してみることを忘れてしまいました。これは私が後にした意図された行動をします。

col.rigidbody.velocity = new Vector2 (-10f, col.gameObject.transform.position.y) * speed; 
関連する問題