23/09/02 19:48:40.07 2IVnHYdi.net
質問です
rigidbodyにフィジックスマテリアルをつけてボールを作っているのですが、入射角と反射角を一致させたいです。
reflectを使えば、方向ベクトルを反転させてくれるようです。
コードを書いてみたのですが反転しません、壁に沿って移動するような感じですが、どこが悪いでしょうか?
rigidbodyはdynamicでgravity0に設定しています。
Rigidbody2D rb;
Vector2 result;
Vector2 angle = new Vector2(1,1);
void Start()
{
rb = GetComponent<Rigidbody2D>();
rb.AddForce(angle * 300,ForceMode2D.Force);
}
void Update()
{
//スピード制限
rb.velocity = Vector2.ClampMagnitude(rb.velocity , 2);
}
private void OnCollisionEnter2D(Collision2D collision)
{
result = Vector2.Reflect(rb.velocity.normalized , collision.contacts[0].normal);
rb.velocity = result;
}