【初心者Unity】5分で考えたゲームを作る~ブロックシューター①~
▶
【Unity】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者Unity】スクリプトからコンポーネントを追加する方法
5分で考えたゲームを作る~ブロックシューター①~
こんな感じのシンプルで簡単なゲーム作りを通じて、Unityでのゲームの作り方を練習してみましょう。
今回はCubeの自動生成部分を作成していきます。
このゲーム製作を通じて、学べるUnityの技術の一例
・ゲームオブジェクトの自動生成
・アニメーションの作成
・物理マテリアルの使い方
・キー入力の取得
・UI(Textの使い方)
・接触判定の取り方
■プロジェクト作成
テンプレートは3D。プロジェクト名は「Block Shooter 3D」としていますが、なんでもOK!
■カメラの位置と背景色の設定
カメラの初期位置を調整します。
下図を参考に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にアタッチしておきましょう。
■プレハブ化とタグ付け
設定が終わったらCubeをProjectビューにドラッグ&ドロップして、プレハブ化しておきます。
HierarchyビューのCubeは削除してしまってOKです。
最後に、プレハブ化したCubeにタグをつけておきましょう。
何でもよいのですが、そのまま「Cube」でカスタムタグを作成して、タグ付けしておきます。
■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です。