Как в Unity создать 4 изображения, на которые можно нажимать? - PullRequest
0 голосов
/ 12 июля 2020

Я хотел бы создать игру для изучения языка, но я пытаюсь создать экземпляры изображений, на которые можно нажимать и у которых есть 4 экземпляра, где один правильный, и когда все 4 экземпляра созданы, воспроизводится аудиоклип, связанный с одним из изображений.

1 Ответ

0 голосов
/ 12 июля 2020

Сначала я бы сделал класс, чтобы управлять тем, что каждое изображение имеет связанный аудиоклип.

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;
     }
}

Если игрок теперь щелкает на изображении вы можете проверить, было ли оно правильным с правильным номером изображения, и, в зависимости от этого, позволить игроку продолжить или завершить игру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...