teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

ソース修正

2019/03/07 01:08

投稿

hogefugapiyo
hogefugapiyo

スコア3307

answer CHANGED
@@ -22,8 +22,8 @@
22
22
  IEnumerator OutputMessage(string msg) {
23
23
 
24
24
  // 引数でもらった文字列の文字数分繰り返し
25
- for (int i = 0; i < msg.Length; i++) {
25
+ for (int i = 0; i <= msg.Length; i++) {
26
- var outputText = msg.Substring(0, i+1); // 先頭からi+1文字目を切り出す
26
+ var outputText = msg.Substring(0, i); // 先頭からi文字目を切り出す
27
27
  messagewindow.text = outputText; // テキストに反映
28
28
  yield return new WaitForSeconds(1); // 1秒待つ
29
29
  }

4

文字数ではなくインデックス番号だったため

2019/03/07 01:07

投稿

hogefugapiyo
hogefugapiyo

スコア3307

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  1文字ずつ削れていくっていうのは``Substring``の引数が1個だけなのでインデックス番号n(n+1文字目)から最後まで切り取る感じになっているからじゃないでしょうか。
2
2
 
3
3
  ``daihon.Substring(3);`` だとdaihonのインデックス番号3から最後までを切り出します。
4
- 先頭からn文字目まで切り出したい場合などは、``daihon.Substring(0,n)`` でインデックス番号0(先頭)からインデックス番号nまでと引数2つ使って明示的に指定してあげると良さそうです。
4
+ 先頭からインデックス番号nまで切り出したい場合などは、``daihon.Substring(0,n)`` でインデックス番号0(先頭)からインデックス番号nまでと引数2つ使って明示的に指定してあげると良さそうです。
5
5
 
6
6
  コルーチン使ったほうがスムーズにいきそうなのでそっちで書いてみたサンプルと、提示されたコードを修正したもの2つを載せておきます。
7
7
 

3

文字数ではなくインデックス番号だったため

2019/03/07 01:02

投稿

hogefugapiyo
hogefugapiyo

スコア3307

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  1文字ずつ削れていくっていうのは``Substring``の引数が1個だけなのでインデックス番号n(n+1文字目)から最後まで切り取る感じになっているからじゃないでしょうか。
2
2
 
3
3
  ``daihon.Substring(3);`` だとdaihonのインデックス番号3から最後までを切り出します。
4
- 先頭から3文字目まで切り出したい場合は、``daihon.Substring(0,3)`` でインデックス番号0(先頭)からインデックス番号3と引数2つ使って明示的に指定してあげると良さそうです。
4
+ 先頭からn文字目まで切り出したい場合などは、``daihon.Substring(0,n)`` でインデックス番号0(先頭)からインデックス番号nまでと引数2つ使って明示的に指定してあげると良さそうです。
5
5
 
6
6
  コルーチン使ったほうがスムーズにいきそうなのでそっちで書いてみたサンプルと、提示されたコードを修正したもの2つを載せておきます。
7
7
 

2

文字数ではなくインデックス番号だったため

2019/03/07 01:01

投稿

hogefugapiyo
hogefugapiyo

スコア3307

answer CHANGED
@@ -1,7 +1,7 @@
1
- 1文字ずつ削れていくっていうのは``Substring``の引数が1個だけなのでn文字目から最後まで切り取る感じになっているからじゃないでしょうか。
1
+ 1文字ずつ削れていくっていうのは``Substring``の引数が1個だけなのでインデックス番号n(n+1文字目から最後まで切り取る感じになっているからじゃないでしょうか。
2
2
 
3
- ``daihon.Substring(3);`` だとdaihonの3文字目から最後までを切り出します。
3
+ ``daihon.Substring(3);`` だとdaihonのインデックス番号3から最後までを切り出します。
4
- 先頭から3文字目まで切り出したい場合は、``daihon.Substring(0,3)`` で0(先頭)から3文字目と引数2つ使って明示的に指定してあげると良さそうです。
4
+ 先頭から3文字目まで切り出したい場合は、``daihon.Substring(0,3)`` でインデックス番号0(先頭)からインデックス番号3と引数2つ使って明示的に指定してあげると良さそうです。
5
5
 
6
6
  コルーチン使ったほうがスムーズにいきそうなのでそっちで書いてみたサンプルと、提示されたコードを修正したもの2つを載せておきます。
7
7
 
@@ -55,7 +55,7 @@
55
55
 
56
56
  // 条件かけないと文字数文以上もやってしまうので応急処置
57
57
  if (n <= daihon.Length) {
58
- string k = daihon.Substring(0, n); // 引数1で0、つまり文字列の先頭を指定
58
+ string k = daihon.Substring(0, n); // 引数1でインデックス番号0、つまり文字列の先頭を指定
59
59
  Text messagewin = GetComponent<Text>();
60
60
  messagewin.text = k;
61
61
  }

1

ソース修正

2019/03/07 01:00

投稿

hogefugapiyo
hogefugapiyo

スコア3307

answer CHANGED
@@ -1,8 +1,10 @@
1
- コルーチン使ったほうがスムーズにいきそうなのでそっちで書いたらどうなるかとやってみました。
2
- テスト環境で、Textそにアタッチしたの自身のTextコンポーネント対し更新をけてます
1
+ 1文字ずつ削れていくっていうの``Substring``引数が1個だけなのでn文字目から最後まで切り取る感じなっいるらじゃなでしょうか
3
2
 
4
- 1文字ずつ削れていくっていうのはSubstringの引数が1個けなでn文字目から最後まで切り取る感じになっているからじゃないでょうか
3
+ ``daihon.Substring(3);`` とdaihon3文字目から最後まで切ります
4
+ 先頭から3文字目まで切り出したい場合は、``daihon.Substring(0,3)`` で0(先頭)から3文字目と引数2つ使って明示的に指定してあげると良さそうです。
5
5
 
6
+ コルーチン使ったほうがスムーズにいきそうなのでそっちで書いてみたサンプルと、提示されたコードを修正したもの2つを載せておきます。
7
+
6
8
  ```C#
7
9
  Text messagewindow;
8
10
  string daihon = "入力したい文字";
@@ -60,6 +62,6 @@
60
62
 
61
63
  }
62
64
 
63
- }
65
+ }
64
66
 
65
67
  ```