3rd week - dsuz/2019-1st-term-unity-game-development GitHub Wiki

今回のテーマ

  1. 当たり判定
    • コライダーとトリガーの違いを知る
  2. スクリプト コンポーネントを使う

以上を学ぶことで次のように「崩せるブロック」を作る。

image

崩せるブロック (TargetBlock) を作る

  1. TargetBlockAssets.unitypackage をダウンロードしてインポートする
    • この unitypackage には崩せるブロックを作るためのアセット(画像・スクリプト)が含まれている
  2. /Assets/Sprites/Blocks/ 以下にある画像を画面上に配置する
    • 名前を変更しておく(例: BlockDarkGrey)
  3. BlockDarkGrey に Box Collider 2D コンポーネントを追加する
  4. シーンを実行し、ボールが当たると跳ね返ることを確認する
  5. BlockDarkGrey に TargetBlockController コンポーネントを追加する
  6. ボールに BallTag というタグを設定する
    1. メニューから Edit > Project Settings > Tags and Layers を選ぶ
    2. Tags に新しいタグ "BallTag" を追加する(Case Sensitive であることに注意すること)
      • image
    3. シーン上のボールオブジェクトを選び、Inspector から Tag に "BallTag" を設定する
      • image
  7. シーンを実行し、ボールが当たると跳ね返り、かつブロックが消えることを確認する
  8. ブロック画像は3色用意しているので、少なくとも各色の「崩せるブロック」を一つ以上ずつ作り、画面上に配置して遊んでみる
  9. Scene ウィンドウ上で v キーを押しながらオブジェクトを移動させると、他のオブジェクトにスナップさせることができる

当たり判定について理解する

  1. TargetBlockController の内容を確認する
  2. Collider のコライダーモード(デフォルト)とトリガーモードの違いを確認する
    • TargetBlock のオブジェクトに追加されている「Box Collider 2D コンポーネント」の Is Trigger にチェックを入れて、どのように動きが変わるか確認する

参考

プレハブを作る

  1. プレハブとは何か
  2. プレハブを作る
    1. Project ウィンドウに Prefabs というフォルダを作る
    2. Hierachy 上のオブジェクトを Project ウィンドウにドラッグ&ドロップする
    3. Project ウィンドウにオブジェクトができる。これがプレハブである。
    4. プレハブを Project ウィンドウから Scene/Hierarchy ウィンドウにドラッグ&ドロップすると、既に設定されたオブジェクトを設置することができる
    5. /Assets/Prefabs/ に以下の3つのプレハブを作る
      • BlockDarkGreyPrefab
      • BlockLightGrayPrefab
      • BlockOrangePrefab

参考

ブロックを自動生成する

  1. シーン内に新しく GameObject を作り、名前を TargetBlockGenerator に変更する
  2. オブジェクトに TargetBlockGenerator コンポーネントを追加する
  3. 以下のように TargetBlockGenerator コンポーネントを設定する
    • image
  4. シーンを実行して、ブロックが整列して生成されることを確認する

説明

  1. TargetBlockGenerator スクリプトの内容について
  2. 「目に見える機能」がないオブジェクトもあることを知っておくこと

まとめ

  • 当たり判定にはコライダーモードとトリガーモードがある
  • 接触したら何かを実行するためには OnCollisionEnter2D, OnTriggerEnter2D を使う
  • Tag を使ってオブジェクトを分類できる
  • Visual Studio のオートコンプリートを積極的に使っていく
  • プレハブを使えば同じ構成のオブジェクトを簡単に複製できる
  • 目には見えないが裏で処理をするオブジェクトもある

その他

今週に行った Q&A は、3週目の質問と回答 にまとめました。