3rd week - dsuz/2019-1st-term-unity-game-development GitHub Wiki
今回のテーマ
- 当たり判定
- コライダーとトリガーの違いを知る
- スクリプト コンポーネントを使う
以上を学ぶことで次のように「崩せるブロック」を作る。
崩せるブロック (TargetBlock) を作る
- TargetBlockAssets.unitypackage をダウンロードしてインポートする
- この unitypackage には崩せるブロックを作るためのアセット(画像・スクリプト)が含まれている
- /Assets/Sprites/Blocks/ 以下にある画像を画面上に配置する
- 名前を変更しておく(例: BlockDarkGrey)
- BlockDarkGrey に Box Collider 2D コンポーネントを追加する
- シーンを実行し、ボールが当たると跳ね返ることを確認する
- BlockDarkGrey に TargetBlockController コンポーネントを追加する
- ボールに BallTag というタグを設定する
- メニューから Edit > Project Settings > Tags and Layers を選ぶ
- Tags に新しいタグ "BallTag" を追加する(Case Sensitive であることに注意すること)
- シーン上のボールオブジェクトを選び、Inspector から Tag に "BallTag" を設定する
- シーンを実行し、ボールが当たると跳ね返り、かつブロックが消えることを確認する
- ブロック画像は3色用意しているので、少なくとも各色の「崩せるブロック」を一つ以上ずつ作り、画面上に配置して遊んでみる
- Scene ウィンドウ上で v キーを押しながらオブジェクトを移動させると、他のオブジェクトにスナップさせることができる
当たり判定について理解する
- TargetBlockController の内容を確認する
- Collider のコライダーモード(デフォルト)とトリガーモードの違いを確認する
- TargetBlock のオブジェクトに追加されている「Box Collider 2D コンポーネント」の Is Trigger にチェックを入れて、どのように動きが変わるか確認する
参考
プレハブを作る
- プレハブとは何か
- プレハブを作る
- Project ウィンドウに Prefabs というフォルダを作る
- Hierachy 上のオブジェクトを Project ウィンドウにドラッグ&ドロップする
- Project ウィンドウにオブジェクトができる。これがプレハブである。
- プレハブを Project ウィンドウから Scene/Hierarchy ウィンドウにドラッグ&ドロップすると、既に設定されたオブジェクトを設置することができる
- /Assets/Prefabs/ に以下の3つのプレハブを作る
- BlockDarkGreyPrefab
- BlockLightGrayPrefab
- BlockOrangePrefab
参考
ブロックを自動生成する
- シーン内に新しく GameObject を作り、名前を TargetBlockGenerator に変更する
- オブジェクトに TargetBlockGenerator コンポーネントを追加する
- 以下のように TargetBlockGenerator コンポーネントを設定する
- シーンを実行して、ブロックが整列して生成されることを確認する
説明
- TargetBlockGenerator スクリプトの内容について
- 「目に見える機能」がないオブジェクトもあることを知っておくこと
まとめ
- 当たり判定にはコライダーモードとトリガーモードがある
- 接触したら何かを実行するためには OnCollisionEnter2D, OnTriggerEnter2D を使う
- Tag を使ってオブジェクトを分類できる
- Visual Studio のオートコンプリートを積極的に使っていく
- プレハブを使えば同じ構成のオブジェクトを簡単に複製できる
- 目には見えないが裏で処理をするオブジェクトもある
その他
今週に行った Q&A は、3週目の質問と回答 にまとめました。