質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

3815閲覧

Unity上では作動するのにWeb Playerに吐き出して動かすと動かない。

fukkun0412

総合スコア37

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2016/05/17 00:25

現在私は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 () { }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

WebPlayerにおけるApplication.dataPathの場所にファイルが無ければ当然動きません。

>Unity上とWebPlayerでファイルパスが変わるのか
変わります。
詳しくは「unityでplatformによって取得できるパス」をご覧ください。

投稿2016/05/17 12:24

sakura_hana

総合スコア11427

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問