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

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

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

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

Q&A

解決済

1回答

385閲覧

string[]で最後の一行表示したら、画面を閉じたい

sikaku1o0o

総合スコア22

C#

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

0グッド

0クリップ

投稿2022/01/20 00:15

Unity 最新版
C#

string[]がわからなくてどうすれば最終行を表示後に終了処理を行えるかわかりません。
基本的なことで申し訳ないのですが、string[]が何か教えていただけると嬉しいです。
説明下手ですみません。

public string[] scenarios; if (scenarios == ????)←文字を全文表示後に終了の処理をしたい。 {

     kaiwa.SetActive(false);←終了処理 

}

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

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

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

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

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

Zuishin

2022/01/20 00:25

string の配列です。
sikaku1o0o

2022/01/20 00:31

すみません。 stringの配列の一種で、[]があることによって行が表示されるのはわかるのですが。 どういった処理状態になってるのでしょうか?  (int,string)な感じなんでしょうか?最大値とかどう云った処理になるのでしょうか?
Zuishin

2022/01/20 00:34

何の処理もしていません。
sikaku1o0o

2022/01/20 00:36

では、終了処理はどういった記述になるのでしょうか?
Zuishin

2022/01/20 00:40

問題となっているのは、終了処理そのものではなく、どのような条件がそろえば終了するかということではありませんか? それは何も書いていないので、こちらではわかりかねます。 文字列の配列は複数の文字列をまとめたものであり、そこに含まれるいずれかの文字列が条件と合致することによって終了条件を満たすことになるのではないかと思います。
sikaku1o0o

2022/01/20 00:46

申し訳ないですが、自分のレベルではおっしゃることの意味がよみとれませんでした。 他の方がわかりやすく教えてくださったので、大丈夫です。 ご協力ありがとうございました
guest

回答1

0

ベストアンサー

行でいいならscenarios.Lengthで取れると思います。
現在、どの行にいるかを把握するためのカウンターを作っておいて管理してあげるとかですね。

cs

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class Test : MonoBehaviour { 6 7 private string[] scenarios = { "春はあけぼの", "やうやう白くなりゆく山ぎは", "すこしあかりて、紫だちたる" }; 8 private int counter = 0; 9 10 private void Update() { 11 // Spaceで会話送り 12 if (Input.GetKeyDown(KeyCode.Space) && counter < scenarios.Length) { 13 14 Debug.Log(scenarios[counter]); 15 counter++; 16 17 // 行末まできたら終わり 18 if (counter == scenarios.Length) { 19 Debug.Log("end"); 20 } 21 } 22 } 23 24} 25

コルーチンとかを挟めば、1文字ずつ出すとかもできると思います

cs

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class Test : MonoBehaviour { 6 7 private string[] scenarios = { "春はあけぼの", "やうやう白くなりゆく山ぎは", "すこしあかりて、紫だちたる" }; 8 private int counter = 0; 9 bool isPlay = false; 10 11 private void Update() { 12 // Spaceで会話送り 13 if (Input.GetKeyDown(KeyCode.Space) && counter < scenarios.Length) { 14 15 StartCoroutine(Dialog(scenarios[counter])); 16 counter++; 17 } 18 } 19 20 IEnumerator Dialog(string _dialog) { 21 22 foreach(var h in _dialog) { 23 Debug.Log(h); 24 yield return new WaitForSecondsRealtime(0.1f); 25 } 26 27 // 行末まできたら終わり 28 if (counter == scenarios.Length) { 29 Debug.Log("読み終わりました"); 30 } 31 } 32 33} 34

投稿2022/01/20 00:38

hogefugapiyo

総合スコア3302

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

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

sikaku1o0o

2022/01/20 00:39

ありがとうございます。 大変助かりました
Zuishin

2022/01/20 00:48 編集

エスパー。
sikaku1o0o

2022/01/20 00:56

そうですね。本当にすごい方です。 自分のつたない説明でやりたいことがわかってくれてて、しかも例文が枕草子ってところがすごい知的です
Zuishin

2022/01/20 01:02

いやそっちもだけど、この回答で自分の聞きたいことがわかったあなたもすごいよ。 まるで一人の人みたい。
sikaku1o0o

2022/01/20 01:20

さすがに自分の数日悩んで探した質問で自作自演する人はいないですよ。  自分的には.Lengthの処理がしたいと思って、でも調べても出てこなくて単語もわからないからどうしようもなくてたので後は頂いたヒントで処理を自分で考えて頑張ろうと思います。 hogefugapiyoさんのすごい所は、自分のつたない質問でノベル的な処理を行いたいのかな?って推理して例を出してくださったことですし、たぶんその辺りが読み取れないとたぶんプログラミングは答えるのは難しいのかなって思います。 プログラミングはもともとすごい難しいですし、
Zuishin

2022/01/20 01:28

> たぶんその辺りが読み取れないとたぶんプログラミングは答えるのは難しいのかなって思います。 逆かな。その辺を調査もせず手を入れる人はだいたいプログラミングに向いてない。
sikaku1o0o

2022/02/15 23:35

自分はそんな話はしてないです。 ・質問内容を理解できていない ・自己都合のいい解釈をする(自問自答してる等妄想している)が貴方の問題です
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問