Developer

【初心者Unity】5分で考えたゲームを作る~ブロックシューター①~
2021.09.30
Lv1

【初心者Unity】5分で考えたゲームを作る~ブロックシューター①~

5分で考えたゲームを作る~ブロックシューター①~

こんな感じのシンプルで簡単なゲーム作りを通じて、Unityでのゲームの作り方を練習してみましょう。
今回はCubeの自動生成部分を作成していきます。

このゲーム製作を通じて、学べるUnityの技術の一例
・ゲームオブジェクトの自動生成
・アニメーションの作成
・物理マテリアルの使い方
・キー入力の取得
・UI(Textの使い方)
・接触判定の取り方

■プロジェクト作成

テンプレートは3D。プロジェクト名は「Block Shooter 3D」としていますが、なんでもOK!

参考:【初心者Unity】プロジェクトを作成する方法

■カメラの位置と背景色の設定

カメラの初期位置を調整します。
下図を参考にTransformの値を変更しましょう。

次に背景色を変更します。
・CameraコンポーネントのClear Flagsを「Solid Color」に変更します。
・Backgroundからカラーパレットを開き背景色を好みの色に変更しましょう。

■ライトを調整

メニューバーから、Window → Rendering → Lighting Settingsを開きます。
・Lightmapping Settingsの「Generate Lighting」をクリックして、ライトマップを生成しておきましょう。
(今回のゲームは特に複雑なオブジェクトの配置は行わないので、事前にライトマップのベイクを済ませてしまいます。)

■生成されるCubeの作成

Hierarchyにて、右クリック → 3DObject → Cube を選択。名前はそのまま「Cube」でOKです。
・座標は変更しなくてOK(自動生成時に決定するため
・Rigidbodyコンポーネントを追加

RigidbodyのConstraintsは下図の通り設定します。

■物理マテリアルの作成

次にCubeに適用する物理マテリアルを作成します。
Projectビューにて、右クリック → Create → Physic Material を選択し、名前は「Physic Material Cube」とします。(なんでもOK
・下図を参考に各プロパティの値を変更しましょう。

作成した物理マテリアルはCubeのBox ColliderのMaterialにアタッチしておきましょう。

参考:【初心者Unity】Physicsマテリアルの使い方

■プレハブ化とタグ付け

設定が終わったらCubeをProjectビューにドラッグ&ドロップして、プレハブ化しておきます。
HierarchyビューのCubeは削除してしまってOKです。

最後に、プレハブ化したCubeにタグをつけておきましょう。
何でもよいのですが、そのまま「Cube」でカスタムタグを作成して、タグ付けしておきます。

参考:【初心者Unity】プレハブの使い方①(作成・複製)

■Cubeの自動生成スクリプトを作成

Projectビューにて、右クリック → Create → C# Script を選択し、名前は「CubeCreater」とします。
作成したら以下を記述してみましょう。(コメントは書かなくてもOK)
アタッチするオブジェクトは次項で作成します。

using UnityEngine;

public class CubeCreater : MonoBehaviour {

	public GameObject cube;

	void Start() {
		// Createメソッドを0秒後に6秒間隔でコールします。
		InvokeRepeating("Create", 0f, 6f);
	}

	void Create() {
		// 生成する座標にブレをつけるため乱数をつかいます。
		float random = Random.Range(-2.0f, 2.0f);

		// 生成する座標を決定
		Vector2 createPos = new Vector2(transform.position.x + random, transform.position.y);

		// Cubeをシーンに生成
		Instantiate(cube, createPos, Quaternion.identity);
	}
}

InvokeRepeatingは、指定したメソッドを繰り返し呼び出すために使います。
第2引数で何秒後に呼び出すのかを指定でき、第3引数で呼び出す間隔(秒)を指定できます。

Random.Rangeは乱数を生成できるメソッドです。詳しい使い方は下記を参照してください。
参考:【初心者Unity】ランダムな要素の作成には乱数を使おう

■Cubeの自動生成用オブジェクトを作成

Hierarchyにて、右クリック → Create Emptyを選択。名前は「CubeCreater」とします。
・下図を参考にTransformの値を変更します。
・CubeCreater(スクリプト)をアタッチします。
・Cubeプロパティにプレハブ化したCubeを紐づけます。

■動作確認

ここまで作成したものを動作確認してみましょう。
CubeCreaterオブジェクトの座標付近(左右±2)で、Cubeが6秒間隔で生成されていればOKです。

5分で考えたゲームを作る~ブロックシューター②~ に続く

連載目次リンク

「初心者のための」Unityゲーム制作 目次

Unity実践編 - 目次リンク

実践Unityゲームプログラミング 連載目次