【はじめてのUnity】ブロック崩しを作る[2]
【はじめてのUnity】ブロック崩しを作る[1] - otoyasumiの日記
上の、前回の記事に引き続きサンプルの作成。
今回もこちらの記事を参考にしました。
UNITY - Developer - はじめての Unity - 第2回 ゲームルールを構築しよう
・衝突すると消滅するブロックを配置する
・ボールがラケットより下のブロックに接触するとボールが破棄されるルールの実装
・OnCollisionEnterメソッドについて調べた。
実際に作ったものはこちら。(スマホ閲覧不可)
■OnCollisionEnter(Collision)メソッド
引数:接触対象のオブジェクト
→ここで登場するのはRigidbodyかCollisionクラスかどっち?
Collider同士では衝突イベントは発生しないらしい。
どっちかはKenematicではないRigidbodyコンポーネントを含んでいる必要がある。
ColliderとRigidbodyの違いは? ※Collider=衝突装置
Kinematicってどういうこと?
→物理演算の影響を受けるかどうか。Rigidbody.isKinematic = true;だと影響受けない。※Kinematic=運動学的な
OnCollisionEnterメソッドはMonoBehaviourのメソッドとして定義されている。
■MonoBehaviourクラス
MonoBehaviourは全てのスクリプトが派生する元となるベースクラスです。
JavaScriptを使用時は自動的にMonoBehaviourから派生するけど、
C#またはBooを使用時は明示的にMonoBehaviourから派生する必要がある。
Destroyメソッド
引数:gameObject、コンポーネントを実行したオブジェクト、つまり接触したブロックを削除する
//ボールが接触したとき
function OnCollisionEnter(collision: Collision){
Destroy(gameObject);
}
■プレハブ化を学ぶ
CreateEmptyで空のゲームオブジェクト作成してそれをフォルダのように使う。
→空のゲームオブジェクトにも座標があり、内包したオブジェクトも
親オブジェクトを移動させると一括移動できる。スケール情報も同様。親は0,0,0に配置しておくと良さげ。