Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 在Unity中,如何实例化4个可单击的图像?_Unity3d - Fatal编程技术网

Unity3d 在Unity中,如何实例化4个可单击的图像?

Unity3d 在Unity中,如何实例化4个可单击的图像?,unity3d,Unity3d,我想制作一个语言学习游戏,但我试图实例化可点击的图像,并在其中一个正确的位置实例化4个,当所有4个都实例化时,播放一个与其中一个图像关联的音频剪辑。首先,我要创建一个类来管理每个图像都有一个关联的音频剪辑 class Answers{ AudioClip clip; Sprite img; } 然后,您可以创建任意数量的答案(这里以1为例) 如果玩家现在单击一个图像,您可以检查该图像是否正确,图像编号是否正确,并根据这一点让玩家继续或结束游戏。当您实例化图像时,音频剪辑是否应该

我想制作一个语言学习游戏,但我试图实例化可点击的图像,并在其中一个正确的位置实例化4个,当所有4个都实例化时,播放一个与其中一个图像关联的音频剪辑。

首先,我要创建一个类来管理每个图像都有一个关联的音频剪辑

class Answers{
    AudioClip clip;
    Sprite img;
}
然后,您可以创建任意数量的答案(这里以1为例)


如果玩家现在单击一个图像,您可以检查该图像是否正确,图像编号是否正确,并根据这一点让玩家继续或结束游戏。

当您实例化图像时,音频剪辑是否应该播放?或者,当您单击正确的图像时,它是否应该播放?我希望在屏幕上显示所有4个图像时播放音频剪辑,然后我必须选择与音频关联的正确图像。它始终是相同的4个图像,或者有时是5个或3个图像?这不是相同的4个图像。它将从100张或更多的图像中选取4张,显示其中的4张,并有一个与其中一张相关联的音频剪辑。如果你选对了,你会得到一个分数,如果你选错了,你就会失去生命。然后,100人中的4张新图像将出现,并带有新的音频剪辑。我还想设定3秒的时间限制,这样,如果他们不选择任何东西,他们就会失去生命。我没有完全遵循。我需要为图像制作一个数组吗?它们是如何显示在屏幕上的?你每次叫它是什么意思?音频剪辑是否与其中一个图像关联?它们像按钮一样可以点击吗?据我所知。您需要4张图像,每次“旋转”都要更改。在每次“旋转”开始时,每个图像都会获得4张“随机”图片,然后开始一个与其中一张图像相等的音频剪辑。然后,当你在3秒钟内点击它时,下一个“回合”开始了。那么游戏对象不是UI?它们是UI,你可以制作一个图像,上面也有一个按钮对象,这样它就可以点击确定了,那么我会制作4个带有按钮组件的图像UI,并将脚本放在主摄像机上?剧本放在哪里重要吗?如果我为图像制作预制,它会从哪里选择图像?Random.Range()将放在哪里?
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;
     }
}