[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild3 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
495
(1): 名前は開発中のものです。 [sage] 2020/02/12(水) 17:39:31.48 ID:6NgVjOYx(1/3) AAS
カードを重複しないで配るために、生成した乱数をリストに追加していき、もしすでにリストにあったらもう一度乱数を生成するというスクリプトを書きたいのですが

cardRandom = Random.Range(0,49);
cardDeck.Add(cardRandom);

if(cardDeck.Contains(cardRandom))
{
Debug.log("被りを検知");
}

こんな感じで書こうとすると、当たり前ですが最初に追加した乱数が見つかるので必ずifが実行されてしまいます

最初にifをもってくれば良いのかな?とも思うのですがまだcardRandom変数はありませんしifを抜けたあとにもう一度乱数生成に入ってしまうのでうまい書き方が見つかりません

カードのプレファブが持っているStartで処理したいのですがどうにかなりませんか?
プレファブを5個生成すると全部違うカードになるイメージです
499: 弟子 [] 2020/02/12(水) 20:29:08.08 ID:V6bGXGkC(5/6) AAS
>>495
こんなんでどうかな?ちょっと酔ってるからさくっとしか検証してないけど

List<int> souceList;

private void Awake()
{
souceList = new List<int>();
for (int i = 1; i < 11; i++) souceList.Add(i);
}

public void ButtonClick()
{
int cardRandom;
for(int i = 0; i < 5; i++) {
cardRandom = Random.Range(0, 10-i);
print(souceList[cardRandom]);
souceList.RemoveAt(cardRandom);
};
}
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.038s