Я пытаюсь создать простую покерную игру в Техасский Холдем в единстве, у меня есть 52 спрайта (изображения) каждой карты в колоде
Я пытаюсь загрузить карты игрока в начале раунд (по 2 карты на каждого игрока) для n игроков, каждая из которых соответствует 52 картам в колоде.
, поэтому я пытаюсь сначала сгенерировать случайное число, а затем на основе этого числа, я загружаю указанный c спрайт, но мое единство замирает и ничего не работает, и я знаю, что этот подход не будет работать, если я копирую свой префаб карты, связанный с классом Get_Card, поэтому мне нужен другой подход. ПОМОГИТЕ спасибо
Класс случайных чисел
public class Random_Number
{
const int n = 52;
int[] all_num = new int[n];
int number = 0;
void Start()
{
for (int i = 0; i < n; i++)
{
all_num[i] = i;
}
}
// Update is called once per frame
void Update()
{
}
public int get_me_a_number()
{
while (number == 0)
{
int rand = Random.Range(0, n);
number = all_num[rand];
all_num[rand] = 0;
}
Debug.Log(number.ToString());
return number;
}
}
Класс карт
public class Get_Card : MonoBehaviour
{
public Sprite[] Sprite_pic;
int number;
Random_Number number_class = new Random_Number();
// Start is called before the first frame update
void Start()
{
number = number_class.get_me_a_number();
GetComponent<SpriteRenderer>().sprite = Sprite_pic[number];
}
Исправлена ошибка ISSUE, проблема с зависанием была вызвана бесконечной l oop.