Unity5.1.1f1 Personal(2015年6月)
前回の続きです〜
自動的に横移動するようになったので、次は壁にぶつかった時にキャラクターが
反転して、反対方向へ戻る動きを作りたいと思います〜
【目標】 壁にぶつかった時、キャラクターを反転させる!
そのためには・・・
①壁衝突時の当たり判定
2Dの場合当たり判定は、「OnTriggerEnter2D」、「OnCollisionEnter2D」、「Physics2D.Linecast」の3つが代表的なもののようです〜今回はこの中から「OnCollisionEnter2D」を実装します!
OnCollisionEnterは、BoxCollider等のコライダーが設定されているオブジェクトにぶつかった時処理を実行します〜それの2D版ということですね〜
まずは壁を作りましょう〜HierarchyビューからCreate>3D Object>Cubeを選択し、以下のように設定します〜
Cube(壁)の設定
こんな感じ
このままだと地面にユニティちゃんが着地した時にも処理が実行されてしまいますので、Cube(壁)に「Wall」というタグを付け、Wallにぶつかった時にだけ処理を実行するようにします〜
InspectorビューのTagからAdd Tagを選択
Wallタグを作成し、
Cube(壁)のInspectorビューに戻りTagを設定
②キャラクター反転処理
gameObject.transform.localScale.xに-1をかけると、画像を反転させることができます〜
③進行方向を逆転させる
②キャラクター反転の結果、gameObject.transform.localScale.xが-1になったり1になったりするので、前回作成した特定の方向へ力を加えるvelocityのXにgameObject.transform.localScale.xかけることで、反対方向への進行を実現させることができます〜
というわけで、こちらがソースです〜
【結果】
壁に向かって進み
ぶつかると反対方向へ
うまくいきました!
今回はここまでです〜
ありがとうございました〜
【Unity開発1】キャラクターを自動で移動させる【ユニティちゃん横スクロールアクション2D:1/11】
【Unity開発1】壁にぶつかった時にキャラクターを反転させる【ユニティちゃん横スクロールアクション2D:2/11】
【Unity開発1】キャラクターをジャンプさせる!【ユニティちゃん横スクロールアクション2D:3/11】
【Unity開発1】キャラクターをカメラが追いかける!【ユニティちゃん横スクロールアクション2D:4/11】
【Unity開発1】uGUIを使って点数を表示する!【ユニティちゃん横スクロールアクション2D:5/11】
【Unity開発1】タイトル画面とゲームオーバー画面を作る!【ユニティちゃん横スクロール2D:6/11】
【Unity開発1】アニメーションを付ける!【ユニティちゃん横スクロールアクション2D:7/11】
【Unity開発1】バグ発見!無限にジャンプできちゃう!【ユニティちゃん横スクロールアクション2D:8/11】
【Unity開発1】ボタン長押しでジャンプ力を強くしたい!【ユニティちゃん横スクロール2D:9/11】
【Unity開発1】足場を下から突き抜けて、そのまま乗っかりたい!【ユニティちゃん横スクロールアクション2D:10/11】