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

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

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

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

Unity

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

Q&A

解決済

2回答

666閲覧

Unity 10~99の整数の中から、10個重複無しでランダムに出力したい

croco

総合スコア2

C#

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

Unity

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

0グッド

0クリップ

投稿2020/10/06 03:21

int startで最小値
int endで最大値
int countで出力したい数
を選ぶようにしたつもりなのですが、なぜかint countで入れた数の2倍整数が出力されてしまいます。

以下のコードを例にすると、int count = 10;
としているのですが、20個値が出力されてしまいます。

何か見落としているのかとは思うのですが、ご教授頂ければと思います。

宜しくお願い致します。

using UnityEngine; using System.Collections.Generic; public class Test : MonoBehaviour { int start = 10; int end = 99; int count = 10; List<int> numbers = new List<int>(); void Start() { for (int i = start; i <= end; i++) { numbers.Add(i); } while (count-- > 0) { int index = Random.Range(0, numbers.Count); int ransu = numbers[index]; Debug.Log(ransu); numbers.RemoveAt(index); } } }

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

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

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

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

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

YAmaGNZ

2020/10/06 04:11

Debug.Log($"{count} , {ransu}"); としたらどのように表示されますか?
croco

2020/10/06 04:37

解決しました。 ご提案頂き、誠にありがとうございました。
guest

回答2

0

cs

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class Test : MonoBehaviour 7{ 8 int start = 10; 9 int end = 99; 10 int count = 10; 11 12 List<int> numbers = new List<int>(); 13 14 void Start() { 15 16 var maxCount = count; 17 18 for (int i = start; i <= end; i++) { 19 numbers.Add(i); 20 } 21 22 while (count-- > 0) { 23 24 int index = Random.Range(0, numbers.Count); 25 26 int ransu = numbers[index]; 27 Debug.Log(gameObject.name + "が出力 →" + "【" + (maxCount - count) + "】回目の乱数 → " + ransu); 28 29 numbers.RemoveAt(index); 30 } 31 } 32} 33

確認したところちゃんと10個出てるので、重複して実行されている可能性があります。
オブジェクト名も一緒に出してみてチェックしてみては。

投稿2020/10/06 04:36

hogefugapiyo

総合スコア3302

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

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

0

ベストアンサー

Test がアタッチされたオブジェクトは間違いなく1つだけですか?
Testがアタッチされたオブジェクトが2つあればそれぞれ実行されてしまいます。

投稿2020/10/06 04:07

ku__ra__ge

総合スコア4524

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

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

croco

2020/10/06 04:36

2つにアタッチされていました、、 簡単な見逃しでした。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問