マップチップの配置処理


マップチップの配置処理 ver0.1


using UnityEngine;
using System.Collections;

public class MapGenerate1 : MonoBehaviour
{
  public GameObject testWallObjectsPrefab;
   public TextAsset[] map;
   int stageNo;
   string[] line;
   string[,] mapChip;
   int mapWidth, mapHeight;
   const int BASE_DATA_POS = 0;    //基礎情報は1行目
   const int MAPCHIP_DATA_POS = 1;    //マップチップデーターは2行目から(空白行は含まれない)
   
   // Use this for initialization
   void Start ()
   {
       stageNo = 5;
       
       char[] lineSplitter = {'\n','\r'};
       char splitter = ',';
       line = map [stageNo].text.Split (lineSplitter, System.StringSplitOptions.RemoveEmptyEntries);
               
       string[] firstLine = line [BASE_DATA_POS].Split (splitter);
       mapWidth = int.Parse (firstLine [0]);
       mapHeight = int.Parse (firstLine [1]);
       
       mapChip = new string[mapWidth, mapHeight];
       
       for (int y = 0; y < mapHeight; y++) {
           string[] temp = line [y + MAPCHIP_DATA_POS].Split (splitter);
           for (int x = 0; x < mapWidth; x++) {
               mapChip [x, y] = temp [x];
           }
       }
       
       //原点から右下に向かって生成される
       //0,0周辺はグリッドに沿った移動ルーチンが誤動作を起こしやすいのでこの仕様でOKなのでは? 
       for (int z = 0; z < mapHeight; z++) {
           for (int x = 0; x < mapWidth; x++) {
               switch (mapChip [x, z]) {
               case "*":{
                       Instantiate (testWallObjectsPrefab,
                       new Vector3 (x, 0.0f, -z),
                       Quaternion.identity);
                   }
                   break;
               }
           }
       }
   }
   
   // Update is called once per frame
   void Update ()
   {
   
   }
}

メニュー



  • 最終更新:2014-06-13 11:56:57

このWIKIを編集するにはパスワード入力が必要です

認証パスワード