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

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

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

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

Q&A

解決済

1回答

3576閲覧

GetComponentInChildren<Text>で文字型変数に取得したデータを入れた時に入るデータについて

okayamamame

総合スコア9

Unity

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

0グッド

0クリップ

投稿2017/01/23 22:37

編集2017/01/24 22:30

unity初心者です。

環境はmacでunityを利用しています。
ともに最新安定版を利用しています。

https://engineer.blog.lancers.jp/2015/05/ugui_quiz_unity/
を参考にUnityを勉強中です。

ボタンにテキスト文字を挿入しておいて、クリックした時にボタンのテキスト文字を読み、答えとあっているか判断するものです。

上記サイトを参考に自分なりに処理を加えたら
「押されたボタンと回答のチェック」で「不正解」にしかいきません。

自分なりの処理は
・クイズ問題をCSVから読み込み配列に代入
・配列の代入値をボタンのテキストに利用
です。


CSVからの読み込み--Title.cs

TextAsset mondaiTextFile = Resources.Load("quiz",typeof(TextAsset)) as TextAsset; mondai = mondaiTextFile.text.Split("\n"[0]); ・・・ mondai_mondai[i] = mondai[i].Split(","[0])[0]; mondai_kotae[i] = mondai[i].Split(","[0])[1]; ・・・

ボタンへのテキスト挿入--mondai.cs

Text sButton1=GameObject.Find("CanvasQuizAnsButton1").GetComponentInChildren<Text>(); sButton1.text=TitleManager.mondai_sentaku_1[0];

押されたボタンと回答のチェック--judgde.cs

public void JudgdeAnswer(){ string answerText = TitleManager.mondai_kotae[0]; Text selectedBtn = this.GetComponentInChildren<Text>(); Debug.Log("'" + selectedBtn.text + "'"); Debug.Log(answerText.Length); Debug.Log(selectedBtn.text.Length); Debug.Log("答え:"+answerText); Debug.Log("選択:"+selectedBtn.text); if(answerText == selectedBtn.text){ Debug.Log("正解"); }else{ Debug.Log("不正解"); } }

コンソール画面

'白'
UnityEngine.Debug:Log(Object)
1
UnityEngine.Debug:Log(Object)
2
UnityEngine.Debug:Log(Object)
答え:白
UnityEngine.Debug:Log(Object)
選択:白
UnityEngine.Debug:Log(Object)
不正解
UnityEngine.Debug:Log(Object)

試した所、「不正解」にしかいきません。

selectedBtn.textの文字数を調べてみると2文字になっています。

this.GetComponentInChildren<Text> ()でボタンの文字を取得したときには文字データ以外に何か付属でデータ、改行コードなどが入るのでしょか?

また、文字型の変数に入っている改行コードなどを可視化する方法があったら教えて下さい。

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

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

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

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

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

turbgraphics200

2017/01/23 23:57

Debug.Log("'" + selectedBtn.text + "'"); したらログにどのように表示されます?
nico29

2017/01/24 02:01

答えの数字部分、半角/全角は一致してますか?
okayamamame

2017/01/24 11:55

urbgraphics200さん、nico29さんコメントありがとうございます。いろいろと処理を追加していたので、勉強サイトをそのまま写経してみましたら上手くいきました。自分が追加した処理が原因のようです。どこに原因があるのかよくわかりませんが、再度整理してまた質問したいと思います。
okayamamame

2017/01/24 12:57

質問内容を編集してみました。
guest

回答1

0

ベストアンサー

改行コードの可視化は、

c#

1Debug.Log(answerText.replace("\r", "■").replace("\n", "★"));

といったコードでできるかと。もし、これで■や★が表示されるのでしたら、

c#

1answerText = answerText.replace("\r", "").replace("\n", "");

として改行コードを削除すればいいかと。(OSによって改行コードがバラバラなので\rと\n分けて処理)

投稿2017/01/24 22:39

turbgraphics200

総合スコア4267

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

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

okayamamame

2017/01/25 10:48

turbgraphics200さんコメントありがとうございます。 教えていただいた内容で Debug.Log(selectedBtn.text.Replace("\r", "■").Replace("\n", "★")); 試したところコンソール画面に 白■ UnityEngine.Debug:Log(Object) という感じで可視化することができました。 ので、Replaceを使って削除してみたところ、「押されたボタンと回答のチェック」の処理が上手くいきました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問