現在私はCSVを用いたプログラムを作成しています。(CSVで読み込んだstring型を画面に表示する)
下のプログラムはCSVをstring型で読み込むプログラムになります。Unity上では読みこんで画面に表示出来ているのに、Web Playerに出力して起動すると文字が表示されませんでした。Unityに詳しい人に聞くと、文字を表示するところは問題なく、原因がファイルパスがUnity上とWeb Playerに出力した時にファイルパスが変わったのではないかという意見を貰いました。
皆さんにお聞きしたいことは
・Unity上とWeb Playerに出力した時にファイルパスは変わるのか?
・Web Playerに出力するとScriptファイルDatasファイル等のファイルの場所が変わってしまうのか?
・上記の問題は関係なくこのプログラムに問題があるのか?
Unityに詳しい方、返答の方よろしくお願いいたします。
ファイルパス "Datas/question.csv"としていました。
CSVを読み込むプログラムを転記いたします。
using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;
public class ReadCSVData : MonoBehaviour {
public FontManager myFont; private string[,] readStrData; public string[,] ReadCSV(string path) { Debug.Log(Application.dataPath); using(StreamReader sr = new StreamReader(Application.dataPath + "/" + path, Encoding.GetEncoding("Shift_JIS"))) { //ストリームリーダーをstringに変換 string strStream = sr.ReadToEnd(); //StringSplitOptionを設定 System.StringSplitOptions option = StringSplitOptions.RemoveEmptyEntries; //行に分ける string[] lines = strStream.Split(new char[] { '\r', '\n' }, option); //カンマ分けの準備(区分けする文字を設定する) char[] spliter = new char[1] { ',' }; //行数設定 int heightLength = lines.Length; //列数設定 int widthLength = lines[0].Split(spliter, option).Length; //返り値の2次元配列の要素数を設定 readStrData = new string[heightLength, widthLength]; //カンマ分けをしてデータを完全分割 for (int i = 0; i < heightLength; i++) { for (int j = 0; j < widthLength; j++) { //カンマ分け string[] StrData = lines[i].Split(spliter, option); //配列の要素に入れる readStrData[i, j] = StrData[j]; } } } return readStrData; } // Use this for initialization void Start () { } // Update is called once per frame void Update () { }
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。