Сначала я бы сделал класс, чтобы управлять тем, что каждое изображение имеет связанный аудиоклип.
class Answers{
AudioClip clip;
Sprite img;
}
Затем вы можете создать столько ответов, сколько захотите (здесь 1 в качестве примера)
AudioClip clip1; // define in inspector
Answers[] answers = {Resources.Load <Sprite>("name_of_the_sprite"), clip1}; // Sprite with the name will be loaded in runtime
Вместо создания экземпляров новых изображений теперь вы должны иметь возможность редактировать те же самые. Потому что нужно изменить только изображение на объектах и аудиоклипе.
Чтобы управлять этим, мы пишем функцию:
// Defining Images that we want to change
public Image img1;
public Image img2;
public Image img3;
public Image img4;
// Call it each time you want to change the Answers
public void ChangeImages()
{
// Selecting 4 Random Images
Answers a1 = answers[answers.RandomRange(0, answers.Count)];
Answers a2 = answers[answers.RandomRange(0, answers.Count)];
Answers a3 = answers[answers.RandomRange(0, answers.Count)];
Answers a4 = answers[answers.RandomRange(0, answers.Count)];
// Change Sprite of the Images
img1.sprite = a1.img;
img2.sprite = a2.img;
img3.sprite = a3.img;
img4.sprite = a4.img;
// To make that random just make a switch statement
int randomnumber = Random.Range(1, 5)
// Correct Solution
int correctImage = 0;
// Play your audioclip, for which every Image you want to be correct
switch (randomnumber)
{
case 1:
PlayAudioClip(a1.clip);
correctImage = 1;
break;
case 2:
PlayAudioClip(a2.clip);
correctImage = 2;
break;
case 3:
PlayAudioClip(a3.clip);
correctImage = 3;
break;
case 4:
PlayAudioClip(a4.clip);
correctImage = 4;
break;
}
}
Если игрок теперь щелкает на изображении вы можете проверить, было ли оно правильным с правильным номером изображения, и, в зависимости от этого, позволить игроку продолжить или завершить игру.