Skip to content

1st term 3rd week

Daisuke Suzuki edited this page Aug 18, 2021 · 1 revision

今回のテーマ

  1. プログラムを修正する(既存のプログラムを修正して機能を加える)
  2. コンポーネントを取得して操作する
  3. プレハブを元にして GameObject を生成する

教材をセットアップする

  1. 前回のプロジェクトがあるなら 3rd_week_exercise.unitypackage をダウンロードし、インポートする
    • なければ新しいプロジェクトを作ってダウンロード・インポートする
  2. Project ウィンドウからシーン Assets/3-Components/Components を探し、ダブルクリックして開く

これ以降は授業内で解説・説明します。

課題

課題1(5点)

シーン実行中に BulletPrefab を Project ウインドウから Scene ビューにドラッグ&ドロップし、弾が飛んでいくことを確認せよ。確認したら、Fire1 ボタン(左クリック/左Ctrl)を押したらその弾がGunman から飛んでいくようにプログラムを修正せよ。

なお、プレハブを元にして GameObject を生成するには Instantiate() 関数を使う。

課題2(5点)

先の課題で弾を発射したが、弾を発射する時に銃口から出ていくようにプログラムを修正せよ。

銃口の位置は、Muzzle オブジェクト(Gunman の子オブジェクト)の位置とする。

課題3(5点)

Jump ボタン(スペースバー)を押したら Gunman がジャンプするようにプログラムを修正せよ。空中で Jump ボタンを何度も押したらさらにジャンプしてしまってもよい。

ジャンプするためには上向きに力を加える必要がある。力を加えるには Rigidbody2D クラスの AddForce() 関数を使う。

課題4(5点)

Gunman オブジェクトに追加されている Gunman Controller コンポーネントに Colors というプロパティがあり、そこに何色か色が設定されていることを確認せよ。確認したら、Fire2 ボタン(右クリック/左Alt)を押す度に Gunman の色が変わるようにプログラムを修正せよ。なお、色は Colors プロパティの Element 0 → Element 1 → Element 2 ... の順番に変わり、最後の色になっている時に Fire2 ボタンが押されたら、最初の色に戻るようにせよ。

なお、色を変えるには SpriteRenderer クラスの color プロパティを使う。配列の添字を循環させるには %(剰余)を使う。

課題5(10点)

先の課題で Gunman がジャンプする機能を作ったが、空中でジャンプしないようにプログラムを修正せよ。「空中でジャンプしない」とはつまり「地面の上に立っている時のみジャンプする」ということである。

なお、一般的に「地面の上に立っているかどうか」を判断することを「接地判定」という。

課題6(15点)

Gunman が2段ジャンプできるようにプログラムを修正せよ。2段ジャンプとは、「空中で一度だけジャンプできる」ということである。

課題7(15点)

Gunman Controller コンポーネントに Flip X というプロパティがあり、これにチェックを入れると「左右の入力に応じて Gunman も向きを変える」ようになることを確認せよ。確認したら、左を向いている時は弾丸が左に飛ぶようにプログラムを修正せよ。