🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

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

Unity

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

Q&A

解決済

2回答

4872閲覧

Unity C# boolにランダムでtrueを代入

kodokudane

総合スコア12

C#

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

Unity

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

0グッド

0クリップ

投稿2018/12/19 07:45

前提・実現したいこと

最近Unityで学ぶC#と言う本を買ったばかりでわからないことがあるので教えてください。
##Unityでクイズが登場するゲームを作ろうと思っています。
クイズボタンを押すとkonnichihaが呼び出され、ランダムにクイズを出題したいです。
クイズボタンを一回押すと一問だけ出題したいです。
######ランダムにkuizu1やkuizu2やkuizu3やkuizu4にtrueを代入したいです。
ランダムに代入する方法はありますか?
ほかにいいやり方があったら教えてください。
初心者なりに調べてみましたがわかりませんでした。回答していただけると嬉しいです。よろしくお願いします。

該当のソースコード

C#

1void Message(string mes) 2 { 3 buttonMessage.SetActive(true); 4 buttonMessageText.GetComponent<Text>().text = mes; 5 } 6 7 8public void konnichiha() 9 { 10 11 if (kuizu1 == true) 12 { 13 Message("クイズ内容"); 14 buttonMessage.SetActive(true); 15 sentakusi1.SetActive(true); 16 sentakusi2.SetActive(true); 17 sentakusi3.SetActive(true); 18 kuizusankakagi = false; 19 kagi1UI.SetActive(false); 20 } 21    if (kuizu2 == true) 22 { 23 Message("クイズ内容"); 24 buttonMessage.SetActive(true); 25 sentakusi1.SetActive(true); 26 sentakusi2.SetActive(true); 27 sentakusi3.SetActive(true); 28 kuizusankakagi = false; 29 kagi1UI.SetActive(false); 30 } 31 32 33 else 34 { 35 DisplayMessage("鍵を入手するとクイズに参加できます"); 36 buttonMessage.SetActive(true); 37 }

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

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

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

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

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

guest

回答2

0

ベストアンサー

ランダムにkuizu1やkuizu2やkuizu3やkuizu4にTrueを入れるのではなく
ランダムに1~4の数字を生成し、1ならクイズ1、2ならクイズ2という形にしたほうがよろしいかと思います。

追記

サンプル(そのままコピペしても動きません)

C#

1// 1~4の数字をランダムに生成 2int question = Random.Range(1,5); 3 4// 出題時 5switch (question) 6{ 7 case 1: 8 Message("クイズ内容"); 9 buttonMessage.SetActive(true); 10 sentakusi1.SetActive(true); 11 sentakusi2.SetActive(true); 12 sentakusi3.SetActive(true); 13 kuizusankakagi = false; 14 kagi1UI.SetActive(false); 15 break; 16 case 2: 17 Message("クイズ内容"); 18 buttonMessage.SetActive(true); 19 sentakusi1.SetActive(true); 20 sentakusi2.SetActive(true); 21 sentakusi3.SetActive(true); 22 kuizusankakagi = false; 23 kagi1UI.SetActive(false); 24 break; 25 case 3: 26 Message("クイズ内容"); 27 buttonMessage.SetActive(true); 28 sentakusi1.SetActive(true); 29 sentakusi2.SetActive(true); 30 sentakusi3.SetActive(true); 31 kuizusankakagi = false; 32 kagi1UI.SetActive(false); 33 break; 34}

それぞれのフラグをtrueにするのではなく、数字にすれば問題や答えを配列に入れて、その数字を添え字にするなど、問題数が増えた場合にも対応しやすい構造を作れるかと思います。

投稿2018/12/19 07:49

編集2018/12/19 08:13
YAmaGNZ

総合スコア10487

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

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

kodokudane

2018/12/19 07:58

回答ありがとうございます、どう書けばいいでしょうか、よければ教えてください。
kodokudane

2018/12/19 08:21

スイッチはクイズ以外にも使えそうですね。回答ありがとうございました。
guest

0

乱数を発生させ、奇数か偶数かでtrue、false を代入するとか

投稿2018/12/19 07:49

y_waiwai

総合スコア88040

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

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

kodokudane

2018/12/19 08:22

回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問