2013年5月16日木曜日

Unityの公式チュートリアルの非公式続編「ゲームルールを!!」 その2

ブロックを画面に設置したので、ボールがブロックに衝突した際に
消えるようにしたいとおもいます。

では、まず最初に作成したブロックにタグをつけたいと思います。



タグを追加したいと思います、追加方法は Edit → Project Settings → Tags を押すと


Inspector ビューに TagManager が表示されるので Tags の三角をクリックすると
Size とか Element 0 とかが表示されるので Eement 0 の右側に入力項目があります。
今回は Block と追加してます。

追加したタグを前回作成したブロックプレハブに設定したいとおもいます。


ブロックプレハブを選択し Inspector ビューの名前の下に Tag の項目をクリックすると
色々項目が出てきますが、先ほど追加した Block を選択します。

すると Hierachy ビューにあるプレハブから作成したブロックの Tag も Block に変化しています。

ブロックをわざわざプレハブにした理由です、プレハブを使って作成するとプレハブの情報を
引き継いで作成されますが、作成後プレハブの設定等を変更した場合でも情報更新されるので
同じ役割を持つオブジェクトを作成する場合はプレハブを使用した方が更新等が楽になります。

次はめんどさくいコードを書きます.

Project ビューで右クリック → Create → javascript を選択し javascript を作成します。
ファイル名は僕は ball としております。

作成したファイルをダブルクリックするとエディタが開くので


function OnCollisionEnter(collisionInfo : Collision){
if(collisionInfo.gameObject.tag == "Block"){
Destroy(collisionInfo.gameObject);
}
}

と書き足してあげてください。

ちなみに、新規で javascript を作成した場合、start 及び update 文が書かれていますが、
消さなくても消しても動きます。(僕は不必要な物はなるべく書かないようにしてるので消してますが)

内容としてましては、OnCollisionEnter 文は関連付けされたオブジェクトが別のオブジェクトと衝突した際に呼び出される関数で、最初の if 文で衝突した対象のタグを見て "Block" かどうか判断し
その後、該当するオブジェクトであれば Destroy 文で対象のオブジェクトを削除しています。

特にコンパイルエラーが出ていなければ、Inspector ビューの ball にドラックアンドドロップしてみましょう。

ball にスクリプトを関連付けたら実際に動かしてみましょう、ボールがブロックにぶつかると消える
ようになってます。






 










0 件のコメント:

コメントを投稿