Collisionとは衝突のこと。OnCollisionEnterとは、コライダー(当たり判定)同士が接触した時に呼び出されるイベントです。
OnCollisionEnter2Dの場合、2Dコライダー同士が接触した時に呼び出されます。(リファレンス)。
成果物
移動するオブジェクトが壁にぶつかった時、左に弾かれたり、
右に弾いたりしてみます。
OnCollisionEnter2Dの使い方
コライダー(2D)同士が衝突した時にイベントを実行
OnCollisionEnter2D(Collision2D 衝突したものを代入する変数名);
OnCollisionEnter2D(Collision2D 衝突したものを代入する変数名);
この記事の状態を前提とします。
要するにコライダー付けたオブジェクトをふたつ作り、片方が動いてぶつかればOKです。
要するにコライダー付けたオブジェクトをふたつ作り、片方が動いてぶつかればOKです。
新たにスクリプトを作成し、void OnCollisionEnter2D(Collision2D collision)と記述します。
最後のcollisionは変数名なので好きな名前を付けていいんですが、推奨されるのはストレートなネーミングです。
最後のcollisionは変数名なので好きな名前を付けていいんですが、推奨されるのはストレートなネーミングです。
OnCollisionEnter2Dの中に、x方向に-100移動する、という命令を記述します。
乱暴なコードですが、これをアタッチすれば、
左から右にぶつかると弾かれる状態になります。
//Unity C#
void OnCollisionEnter2D(Collision2D collision)
{
this.transform.Translate(-100, 0, 0);
}
接触した相手にスクリプト実行
この最後のcollisionには、ぶつかった相手の名称が保存されます(変数名は任意に変更可能)。
さっきのコードを少しいじり、collision.transform.Translate(100, 0, 0);とでもしてやれば、
逆にぶつかった相手を弾き飛ばすスクリプトにすることも可能です。
やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。
コメント