ユニティちゃんの2Dスクロールアクション:改 その2 キャラを落下させる

ども、ゴコーです。

今回は「キャラクターを重力にそって落下」させましょう。
本当は移動なども合わせて書きたかったのですが、長くなったので分割します。

スポンサーリンク

フォルダの作成

まずはスクリプトを書く前にスクリプトを入れるためのフォルダを作成しましょう。
プロジェクトウィンドウの右側をコンテキストクリック(Windows なら右クリック)し、
Create > Folder をクリックしてフォルダを作成して下さい。

名前は「Scripts」などの分かりやすいものにしておいてください。

ここまで進めると、プロジェクトウィンドウがこんな感じになります。

uni_kai_2-0

スクリプトの作成とアタッチ

では、スクリプトを作成していきます。

Scripts フォルダを開いて、右クリック > Create > C# Script を選択してください。
名前は僕の場合は UnityChanController としました。

まずは UnityChanController を MonoDevelop で開いて

で始まる行を改行して、以下のように入力してください。

こうすることで、このスクリプトがくっついたオブジェクトには Rigidbody2D も自動的にくっつくようになりました。
ついでに、このスクリプトがひっついている限り、 Rigidbody2D を引きはがすこともできなくなりました。

ではこのスクリプトをユニティちゃんにアタッチ(くっつけること)して見ましょう。

アタッチには、例えば

  • ヒエラルキーのオブジェクトにD&D(ドラッグ&ドロップ)
  • オブジェクト選択時にインスペクターに表示されるオブジェクト情報の下部にD&D

などのやり方があります。

uni_kai_2-1

アタッチすると、自動的に Rigidbody2D もアタッチされたことを確認できましたか?

成功ならば以下のようになります。

uni_kai_2-2

地面の作成

では、ゲームを再生してみましょう。

u1

u2

ユニティちゃんの霊圧が…消えた

このように落下して画面からユニティちゃんが消えたなら成功です。

しかし、このままでは無限に落下していってしまいますので、地面を作成しましょう。

  • ヒエラルキー上部の Create > 3D Object > Cube
  • GameObject > Create > 3D Object > Cube

のいずれかからキューブを作って下さい。

さらに、大きさや位置を調整します。
Cube をヒエラルキー上で選択し、インスペクターに表示されている Transform から

Position Y を – 2 に
Scale X を 15 にしてください。

以下のように表示されましたか?

uni_kai_2-3

それでは再生してみましょう。

uni_kai_2-4

uni_kai_2-5

ユニティちゃんの霊圧が(ry

このように地面を突き抜けたら正解です。

2Dのあたり判定へ修正

突き抜けた理由は2つあります。

  • ユニティちゃんに当たり判定がない
  • 地面の当たり判定が3D用

上のものを修正しても、地面の判定が3D用のものなので意味がありません。
Unity では、2D用の当たり判定と3D用の当たり判定がお互い干渉しないようにできているのでここは注意が必要です。

では、まずはユニティちゃんに先ほどとは別の方法で Rigidbody2D コンポーネントをアタッチしてみましょう。

ユニティちゃんのオブジェクトを選択している状態でインスペクター最下部より、

Add Component > Physics 2D > Box Collider 2D

を選択してください。

uni_kai_2-6

Unity でコンポーネントをアタッチする際、主に使う方法は以上の3つです。
覚えておくと良いかもです。

これでユニティちゃんに四角い当たり判定がつきました。

次に、地面の当たり判定を差し替えます。

Cube を選択し、インスペクターからコンポーネント名をコンテキストクリックするか、歯車マークをクリックして

Remove Component 

をクリックしてください。

次に、先ほどユニティちゃんにしたのと同様に Box Collider 2D をアタッチしてください。

微調整と実行

これで設定は完了…ではありません。

以前の記事で書きましたが、このままでは実際に見えているユニティちゃんと当たり判定の大きさが食い違ってしまいます。

参考:PixelPerUnitsについて(途中から) http://unity-michi.com/post-352/

理解しなくていいや、って人は全然構わないですが、少なくともこのままではゲームに支障が出るレベルでだめなので、ユニティちゃんの当たり判定の大きさを修正しましょう。

ユニティちゃんを選択している状態でインスペクターの BoxCollider2D より、Size を X = 1 , Y = 1.6 くらいにして下さい。

さあ、これで準備は完了です。

再生してみましょう!

uni_kai_2-7

良い感じですね!

では今回はここまでです。

今回は内容が薄いので2週目、3週目はありません。

次回こそは移動に入りましょう!

では、また。

Comments

comments

スポンサーリンク
336*280px