【Unity10】パズドラ的なゲーム(3-match)のチュートリアル【パズドラ風1】
Unity5.1.1p3 Personal(2015年7月)
今回からはパズドラ的なパズルゲームを作っていこうと思います〜
パズドラみたいに3つ以上の宝石を並べて消すゲームを、3-matchと呼ぶそうです〜
こちらの動画と、わなびノートさんの記事を参考に作っていこうと思います〜
今回はとりあえず画面上にCubeを30個並べてみます〜
【目標】画面にCubeを30個並べる!
まずはこちらのエッセンスを参考に、2D設定でProjectを作成して下さい〜
続いてHierarchyビューからCreate > 3D Object > Cubeを選択します〜
CubeのTransform情報はデフォルトのままでお願いします〜
CubeのTranform情報
続いて早速ですが、Cubeをプレハブ化します〜
Prefabsフォルダーを作成して、Cubeをドラッグ&ドロップして下さい〜
HierarchyビューにあるCubeは削除します〜
ドラッグ&ドロップ!
続いて空のGameObjectを作成します〜HierarchyからCreate > Create Emptyを選択し、名前を「GemManager」として下さい〜
GemManagerのTransform情報も、デフォルトのままで大丈夫です〜
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に変更しておきましょう!
ドラッグ&ドロップ!
for文で縦・横方向へループを実行し、InstantiateにてGemを生成しています〜
生成したGemは、GemManagerの子オブジェクトに指定します〜
それでは実行してみましょう〜
一枚の板のようなものが生成されましたが、これは30子のGemオブジェクトが隙間無く生成された結果です〜
GemManagerを選択した状態でSceneビューで見てみると、よく分かります〜
30個のGemを生成
最後にちょっと位置がズレているので、Main CameraのTransform情報を以下のように変更して下さい〜
Main CameraのTransform情報
中央に表示
ひとまずCubeを画面に表示させることができました〜
今回はここまでです〜
ありがとうございました〜