рандомные улучшения как в Vampire Survivors(нужно выводить на экран 3 кнопки с ивентами из пула кнопок и чтобы они не повторялись)
нужно выводить на экран 3 кнопки с ивентами из пула кнопок и чтобы они не повторялись(условно посредине экрана). у меня получилось в рандомные числа без повторений но что делать дальше ? Как мне вывести эти кнопки ?
public GameObject[] G_Object;
public GameObject[] S_Object;
public List<int> TakeList = new List<int>();
private int randomNumber;
// Start is called before the first frame update
void Start()
{
TakeList = new List<int>(new int[G_Object.Length]);
for (int i = 0; i < G_Object.Length; i++)
{
randomNumber = UnityEngine.Random.Range(1, (S_Object.Length) + 1);
while (TakeList.Contains(randomNumber))
{
randomNumber = UnityEngine.Random.Range(1, (S_Object.Length) + 1);
}
TakeList[i] = randomNumber;
//G_Object[i] = S_Object[(TakeList[i] - 1)]; тут где то должно что то произойти
}
}
Ответы (1 шт):
Автор решения: Revenor4ek
→ Ссылка
Спасибо за ответ , немного помог. Вот что у меня получилось и вроде работает
{
public RectTransform[] G_Object;
public GameObject[] S_Object;
public RectTransform Canvas3;
public List<int> TakeList = new List<int>();
private int randomNumber;
// Start is called before the first frame update
void Start()
{
Canvas3=GetComponent<RectTransform>();
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.I))
{
TakeList = new List<int>(new int[G_Object.Length]);
for (int i = 0; i < G_Object.Length; i++)
{
randomNumber = UnityEngine.Random.Range(1, (S_Object.Length) + 1);
while (TakeList.Contains(randomNumber))
{
randomNumber = UnityEngine.Random.Range(1, (S_Object.Length) + 1);
}
TakeList[i] = randomNumber;
Instantiate(S_Object[(TakeList[i] - 1)], G_Object[i].transform.position, G_Object[i].transform.rotation, Canvas3);
}
}
}
}