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

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

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

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

Q&A

解決済

1回答

594閲覧

Unityで.txtファイルを読み込んで配列にし、読み込んでオブジェクト生成をしたいです

yuki384

総合スコア14

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

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

0グッド

0クリップ

投稿2018/04/13 00:26

txtファイルに1行ごとに1ステージのデータを入れておいて、
1行ごとに切って配列にして
その配列の(ステージ)番目を読み込んで地面を生成したいのですがエラーが出て動きません。どうすればよいのでしょうか?
Unity 2017.3.1f1です。
あと、こんな感じで表示されてます。
Script

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class CreateGround : MonoBehaviour { 6 public GameObject Gr0Prefab; 7 public TextAsset StageData; 8 int Stage=1; 9 void Start () { 10 StringSplit(); 11 StageData = Resources.Load ("SiromaruCandy") as TextAsset; 12 string StrData = StageData.text; 13 string[] StgData = StrData.Split(char.Parse("\n")); 14 CreateGr(); 15 } 16 void StringSplit(){ 17 18 } 19 // Update is called once per frame 20 void Update () { 21 22 } 23 void CreateGr(){ 24 int len = StgData[Stage-1].Length;//lenをステージデータのStage行目の長さにする 25 int n = 0; 26 while(n < len){//nがlenより小さいなら繰り返す 27 string c= StgData[Stage-1].Substring(0, n+1);//cをステージ行目のn番目の文字にする 28 GameObject gr0 = Instantiate(Gr0Prefab) as GameObject;//gr0にGr0のPrefabを設定する...(Grの数だけやる) 29 string gr="gr"+c;//grをgrとcにする 30 gr.transform.position = new Vector2(540*n, -360);//(Gr)と(c)を生成 x(540*n -270),y(-360) 31 n=n+1;//nを一ずつ変える 32 } 33 } 34} 35

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

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

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

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

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

MMashiro

2018/04/13 00:36

どのようなエラーが出たか記述をお願い致します
guest

回答1

0

ベストアンサー

Unityのコンソールにスクリプトビルド時のエラーが表示されているはずです。
とりあえずスクリプトを目視して分かる点を指摘しますが、他にもあるかもしれないのでまずエラー文を見て内容を確認してください。
【Unity】Unity初心者を卒業するためのデバッグ入門 - テラシュールブログ


string[] StgDataがStart()の中で宣言されています。
この為、CreateGr()からStgDataにアクセス出来ません。
変数の宣言をvoidの外で行なってください。

gr.transform.position ~とありますが、
grはstring型なのでtransformコンポーネントは持っていません。
gr0の間違いでしょうか?

gr0.transform.position = new Vector2~だったとして、
transform.positionにはVector3を渡す必要があります。
なお、uGUIオブジェクトの場合、transform.positionと画面上の位置は異なります。「ugui 位置 スクリプト」で検索してください。

投稿2018/04/13 00:43

sakura_hana

総合スコア11425

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

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

yuki384

2018/04/13 01:00

ありがとうございます!無事やりたいことができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問