UnityでRPGを作ってみる

UnityでRPGを作ってみる

初級講座



未分類

Prefabで生成したオブジェクトを他のオブジェクトの子にする

// 移動させたい親オブジェクトをUnity側のInspectorから予め設定しておく
[SerializeField] GameObject cnv; 
  (中略)
room[y, x] = Instantiate((GameObject)Resources.Load("Prefabs/Dungeon/Room")).GetComponent<CRoom>();
room[y, x].transform.SetParent(cnv.transform);

Rayを使ってオブジェクトを取得

 [SerializeField] Camera MainCamera;
  (中略)
Ray ray = MainCamera.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
 if (Physics.Raycast(ray, out hit, 100.0f))
 {
      Debug.Log(hit.collider.gameObject.name);
  }

ファイル操作

csvファイルを読み込む

前提:
csvファイルは ****\Assets\Resources\csv\ に置く。
csvフォルダに置くのは任意。分かりやすいのでこうしてる。Resourcesフォルダに置くのはMUST。

 // CSVの中身を入れるリスト
using System.IO; // StringReader を使用するための宣言
(中略)
List<string[]> FloorData = new List<string[]>();
(中略)
 TextAsset csvFile = Resources.Load("csv/map/" + "001") as TextAsset; /* Resouces/CSV下のCSV読み込み */
StringReader reader = new StringReader(csvFile.text);
 while (reader.Peek() > -1)
{
    string line = reader.ReadLine();
    FloorData.Add(line.Split(',')); // リストに入れる
 }

●Unity側でcsvが読めない(範囲外アクセス)と言われるときは
該当のcsvファイルをUnityの下画面をクリックすると、空っぽに見えてるはず
そんなときは、csv文字コードUTF-8にする