2nd week - dsuz/2019-1st-term-unity-game-development GitHub Wiki

今回のテーマ

  1. 以下のコンポーネントの使い方を学ぶ
    • Rididbody
    • Collider
    • Sprite (Sprite Renderer)
  2. Physics Material アセットの使い方を学ぶ
  3. スクリプト コンポーネントの基礎を知る

以上を学ぶことで次のような「ブロック崩しの基本形」を作る。

image

Sprite を使う

  1. sprite_ball_wall.unitypackage をダウンロードしてインポートする
    • この unitypackage には「丸いもの」の画像と「長方形のもの」の画像が含まれている
  2. /Assets/Sprites/Balls/BallSprite を Scene ウインドウにドラッグ&ドロップする
    • オブジェクトが作られ、オブジェクトには Sprite Renderer が追加されていることを確認すること
  3. Sprite Renderer の設定を変えて、変化を確認する
    1. Sprite を他の Sprite に変える
    2. Color を変える
    3. Flip のチェックを入れたり外したりする
  4. /Assets/Sprites/Walls/PlankSprite をボールの下に配置する
    • 適当に Sprite Renderer の設定を変えてもよい
  5. シーンを実行しても何も起きないことを確認する

Rigidbody と Collider を使う

  1. Ball のオブジェクトに Rigidbody 2D コンポーネントを追加 (Add Component) する
  2. シーンを実行して何が起きるかを確認する
  3. Plank のオブジェクトに Box Collider 2D コンポーネントを追加する
  4. Scene ウィンドウで当たり判定の大きさを確認する
  5. シーンを実行して何が起きるかを確認する
  6. Ball のオブジェクトに Circle Collider 2D コンポーネントを追加する
  7. Scene ウィンドウで当たり判定の大きさを確認する
  8. 当たり判定が大きすぎる場合は、Circle Collider 2D のパラメータ Radius を調整する
  9. シーンを実行して何が起きるかを確認する
  10. Ball や Plank を増やしたり、傾けたりして挙動を確認する

image

Physics Material を使う

  1. Project ウインドウを操作して、Physics Material 2D アセットを新たに作る
    • 名前を Bouncy に変える
  2. Project ウィンドウ内で、いま作ったアセットを選択し、Inspector ウィンドウで次のように設定を変える
    • Friction: 0 (摩擦係数)
    • Bounciness: 1 (反発係数)
  3. Hierarchy ウィンドウから Ball のオブジェクトを選び、Rigidbody 2D または Circle Collider 2D コンポーネントの Material に、Bouncy アセットを設定(アサイン)する
  4. シーンを実行して挙動を確認する
  5. Friction, Bounciness の値を変えて、どのように挙動が変わるのかを確認する

問題

ボールが回転しないようにするには、Physics Material 2D のどのパラメーターをいくつに設定すればよいか?

コンポーネントの解説

Rigidbody 2D, Circle Collider 2D, Box Collider 2D コンポーネントの設定値(パラメーター)について説明する

公式リファレンス

ブロック崩しの基本を作る

ブロック崩しの基本形として、以下を作る。

  1. 上左右を囲む壁
  2. キー操作で左右に動くパドル
  3. ボールが動く

image

壁を作る

以下のように Sprite を並べ、Collider を設定する。Collider の形に注意すること。

image

パドルを作る

  1. scripts_ball_paddle.unitypackage をダウンロードしてプロジェクトにインポートする
    • このパッケージにはパドルとボールを制御するスクリプトが入っている
  2. パドルとなるオブジェクトに以下の変更を加える
    • Rididbody 2D コンポーネントを追加し、以下のパラメータを変更する
      1. Gravity Scale を 0 にする
      2. Freeze Position の Y をチェックする
      3. Freeze Rotation のチェックを入れる
    • PaddleController コンポーネントを追加する
  3. 実行して挙動を確認する

ボールを作る

  1. ボールとなるオブジェクトに以下の変更を加える
    • Rididbody 2D コンポーネントの Gravity Scale を 0 にする
    • BallController コンポーネントを追加する
  2. 実行して挙動を確認する

スクリプトの解説

PaddleController, BallController の内容を解説する

公式リファレンス

公式以外を見たほうがよいもの

まとめ

  • Sprite Renderer コンポーネントの機能、パラメーターの意味
  • Rigidbody 2D, Box Collider 2D, Circle Collider 2D コンポーネントの機能、パラメーターの意味
  • スクリプトからコンポーネントを操作する (GetComponent 等)
  • スクリプトで入力を受け付ける (Input)