前提・実現したいこと
unityにてクイズゲームを作成しています。その過程において問題文や選択肢などをテキストファイルで用意してそれを読み込もうと考えました。問題の出題順をランダムにしたいなどもあり2次元配列にそれぞれを入れようと調べたところちょうどそれっぽいプログラムを公開しているサイトがあり、それを使おうとしました。
利用したサイト:https://qiita.com/Eureka/items/716f4f52b4106419dbec
発生している問題・エラーメッセージ
上記のプログラムを実行したところうまくテキストファイルの読み込みができていないようでした。特にエラーが出るわけでもありません。これを上記のサイトの出力結果にしたいです。
該当のソースコード
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
public class QuizManager : MonoBehaviour
{
public string[] textMessage; //テキストの加工前の一行を入れる変数
public string[,] textWords; //テキストの複数列を入れる2次元配列
private int rowLength; //テキスト内の行数を取得する変数 private int columnLength; //テキスト内の列数を取得する変数 private void Start() { TextAsset textasset = Resources.Load("joukyu") as TextAsset; //Resourcesフォルダから対象テキストを取得 string TextLines = textasset.text; //テキスト全体をstring型で入れる変数を用意して入れる //Splitで一行づつを代入した1次配列を作成 textMessage = TextLines.Split('\n'); //行数と列数を取得 rowLength = textMessage.Length; columnLength = textMessage[0].Split(',').Length; //2次配列を定義 textWords = new string[rowLength, columnLength]; for (int i = 0; i < rowLength; i++) { string[] tempWords = textMessage[i].Split(','); //textMessageをカンマごとに分けたものを一時的にtempWordsに代入 for (int j = 0; j < columnLength; j++) { textWords[i, j] = tempWords[j]; //2次配列textWordsにカンマごとに分けたtempWordsを代入していく Debug.Log(textWords[i, j]); } } }
}
・テキスト内容
ID Name Message
1 やすし こんにちは!
2 たけし はい、こんにちは!
3 やすし あなたはピチョンさんですか?
4 たけし いいえ、私はピチョンではありません、たけしです。
※実際のファイルでは空白をTabできっています。
試したこと
デバッグログにて配列の長さを調べたところ、行と列ともに1でした。
補足情報(FW/ツールのバージョンなど)
unityバージョン:2017.4.2f2
Visual Studio 2017
回答3件
あなたの回答
tips
プレビュー