Unity(C#)初心者・入門者向けチュートリアル ひよこのたまご

AndroidやiOS向けアプリを簡単に作れるゲーム開発環境Unity(ユニティ)の使い方を、チュートリアル方式で一緒に学びましょう!

【Unity10】パズドラ的なゲーム(3-match)のチュートリアル【パズドラ風1】

Unity5.1.1p3 Personal(2015年7月)

f:id:hiyotama:20150730125817p:plain

今回からはパズドラ的なパズルゲームを作っていこうと思います〜

パズドラみたいに3つ以上の宝石を並べて消すゲームを、3-matchと呼ぶそうです〜

こちらの動画と、わなびノートさんの記事を参考に作っていこうと思います〜

今回はとりあえず画面上にCubeを30個並べてみます〜

【目標】画面にCubeを30個並べる!

まずはこちらのエッセンスを参考に、2D設定でProjectを作成して下さい〜

続いてHierarchyビューからCreate > 3D Object > Cubeを選択します〜
CubeのTransform情報はデフォルトのままでお願いします〜

f:id:hiyotama:20150730121154p:plain
CubeのTranform情報


続いて早速ですが、Cubeをプレハブ化します〜
Prefabsフォルダーを作成して、Cubeをドラッグ&ドロップして下さい〜
HierarchyビューにあるCubeは削除します〜

f:id:hiyotama:20150730121519p:plain
ドラッグ&ドロップ!


続いて空のGameObjectを作成します〜HierarchyからCreate > Create Emptyを選択し、名前を「GemManager」として下さい〜
GemManagerのTransform情報も、デフォルトのままで大丈夫です〜

f:id:hiyotama:20150730122442p:plain
GemManagerのTransform情報


このGemManagerオブジェクトの下に、先ほどのCubeプレハブを30個作っていきます〜


それではGemManagerという名前のスクリプトを作成して下さい〜以下ソースです〜

using UnityEngine;
using System.Collections;

public class GemManager : MonoBehaviour {
	
	public int gridWidth; //Gemを並べる横幅
	public int gridHeight; //Gemを並べる縦幅
	public GameObject gemPrefab; //Cubeプレハブを指定

	void Start () {
		//縦幅分だけループ
		for(int y = 0; y < gridHeight; y++){
			//横幅分だけループ
			for(int x = 0; x < gridWidth; x++){
				//Cubeを作成
				GameObject g = Instantiate(gemPrefab, new Vector3(x, y, 0), Quaternion.identity) as GameObject;
				//Cubeの親オブジェクトを、このオブジェクト(GemManager)に指定
				g.transform.parent = gameObject.transform;
			}
		}
	}
	
	void Update () {
	
	}
}

GemManager.cs


public変数であるgridWidthに6を、gridHeightに5を、gemPrefabに作成したCubeプレハブを設定します〜
ついでにCubeプレハブの名前をGemに変更しておきましょう!

f:id:hiyotama:20150730123756p:plain
ドラッグ&ドロップ!


for文で縦・横方向へループを実行し、InstantiateにてGemを生成しています〜
生成したGemは、GemManagerの子オブジェクトに指定します〜


それでは実行してみましょう〜

f:id:hiyotama:20150730124731p:plain


一枚の板のようなものが生成されましたが、これは30子のGemオブジェクトが隙間無く生成された結果です〜
GemManagerを選択した状態でSceneビューで見てみると、よく分かります〜

f:id:hiyotama:20150730125051p:plain
30個のGemを生成


最後にちょっと位置がズレているので、Main CameraのTransform情報を以下のように変更して下さい〜

f:id:hiyotama:20150730125416p:plain
Main CameraのTransform情報


f:id:hiyotama:20150730125442p:plain
中央に表示


ひとまずCubeを画面に表示させることができました〜


今回はここまでです〜

ありがとうございました〜