C# 随机选取图像的应用程序

C# 随机选取图像的应用程序,c#,unity3d,C#,Unity3d,我试图创建一个应用程序,从一堆不同的图像中随机选取并显示它。到目前为止,我已经创建了这段代码,虽然它可以工作,但显然存在一些缺陷,比如所需的处理能力,以及所有的代码行。有没有办法简化这一点 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Generation : MonoBehaviour { private

我试图创建一个应用程序,从一堆不同的图像中随机选取并显示它。到目前为止,我已经创建了这段代码,虽然它可以工作,但显然存在一些缺陷,比如所需的处理能力,以及所有的代码行。有没有办法简化这一点

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Generation : MonoBehaviour
{
    private int number;
    public GameObject img1;
    public GameObject img2;
    public GameObject img3;
    public GameObject img4;
    public GameObject img5;
    public GameObject img6;
    public GameObject img7;
    public GameObject img8;
    public GameObject img9;
    public GameObject img10;
    public GameObject img11;
    public GameObject img12;
    public GameObject img13;
    public GameObject img14;
    public GameObject img15;
    public GameObject img16;
    public GameObject img17;
    public GameObject img18;
    public GameObject img19;
    public GameObject img20;
    public GameObject img21;
    public GameObject img22;
    public GameObject img23;
    public GameObject img24;
    public GameObject img25;
    public GameObject img26;
    public GameObject img27;
    public GameObject img28;
    public GameObject img29;
    public GameObject img30;
    public GameObject img31;
    public GameObject img32;
    public GameObject img33;
    public GameObject img34;
    public GameObject img35;
    public GameObject img36;
    public GameObject img37;
    public GameObject img38;
    public GameObject img39;
    public GameObject img40;
    public GameObject img41;
    public GameObject img42;
    public GameObject img43;
    public GameObject img44;
    public GameObject img45;
    public GameObject img46;
    public GameObject img47;
    public GameObject img48;
    public GameObject img49;
    public GameObject img50;
    public GameObject img51;
    public GameObject img52;
    public GameObject img53;
    public GameObject img54;
    public GameObject img55;
    public GameObject img56;
    public GameObject img57;
    public GameObject img58;
    public GameObject img59;
    public GameObject img60;
    public GameObject img61;
    public GameObject img62;
    public GameObject img63;
    public GameObject img64;
    public GameObject img65;
    public GameObject img66;
    public GameObject img67;
    public GameObject img68;
    public GameObject img69;
    public GameObject img70;
    public GameObject img71;
    public GameObject img72;

    public void ResetScreen()
    {
        for (int a = 0; a <transform.childCount; a++)
        {
            transform.GetChild(a).gameObject.SetActive(false);
        }
    }

    public void RandomGenerate()
    {
        number = Random.Range(1, 73);
        switch (number)
        {
            case 1:
                img1.SetActive(true);
                break;
            case 2:
                img2.SetActive(true);
                break;
            case 3:
                img3.SetActive(true);
                break;
            case 4:
                img4.SetActive(true);
                break;
            case 5:
                img5.SetActive(true);
                break;
            case 6:
                img6.SetActive(true);
                break;
            case 7:
                img7.SetActive(true);
                break;
            case 8:
                img8.SetActive(true);
                break;
            case 9:
                img9.SetActive(true);
                break;
            case 10:
                img10.SetActive(true);
                break;
            case 11:
                img11.SetActive(true);
                break;
            case 12:
                img12.SetActive(true);
                break;
            case 13:
                img13.SetActive(true);
                break;
            case 14:
                img14.SetActive(true);
                break;
            case 15:
                img15.SetActive(true);
                break;
            case 16:
                img16.SetActive(true);
                break;
            case 17:
                img17.SetActive(true);
                break;
            case 18:
                img18.SetActive(true);
                break;
            case 19:
                img19.SetActive(true);
                break;
            case 20:
                img20.SetActive(true);
                break;
            case 21:
                img21.SetActive(true);
                break;
            case 22:
                img22.SetActive(true);
                break;
            case 23:
                img23.SetActive(true);
                break;
            case 24:
                img24.SetActive(true);
                break;
            case 25:
                img25.SetActive(true);
                break;
            case 26:
                img26.SetActive(true);
                break;
            case 27:
                img27.SetActive(true);
                break;
            case 28:
                img28.SetActive(true);
                break;
            case 29:
                img29.SetActive(true);
                break;
            case 30:
                img30.SetActive(true);
                break;
            case 31:
                img31.SetActive(true);
                break;
            case 32:
                img32.SetActive(true);
                break;
            case 33:
                img33.SetActive(true);
                break;
            case 34:
                img34.SetActive(true);
                break;
            case 35:
                img35.SetActive(true);
                break;
            case 36:
                img36.SetActive(true);
                break;
            case 37:
                img37.SetActive(true);
                break;
            case 38:
                img38.SetActive(true);
                break;
            case 39:
                img39.SetActive(true);
                break;
            case 40:
                img40.SetActive(true);
                break;
            case 41:
                img41.SetActive(true);
                break;
            case 42:
                img42.SetActive(true);
                break;
            case 43:
                img43.SetActive(true);
                break;
            case 44:
                img44.SetActive(true);
                break;
            case 45:
                img45.SetActive(true);
                break;
            case 46:
                img46.SetActive(true);
                break;
            case 47:
                img47.SetActive(true);
                break;
            case 48:
                img48.SetActive(true);
                break;
            case 49:
                img49.SetActive(true);
                break;
            case 50:
                img50.SetActive(true);
                break;
            case 51:
                img51.SetActive(true);
                break;
            case 52:
                img52.SetActive(true);
                break;
            case 53:
                img53.SetActive(true);
                break;
            case 54:
                img54.SetActive(true);
                break;
            case 55:
                img55.SetActive(true);
                break;
            case 56:
                img56.SetActive(true);
                break;
            case 57:
                img57.SetActive(true);
                break;
            case 58:
                img58.SetActive(true);
                break;
            case 59:
                img59.SetActive(true);
                break;
            case 60:
                img60.SetActive(true);
                break;
            case 61:
                img61.SetActive(true);
                break;
            case 62:
                img62.SetActive(true);
                break;
            case 63:
                img63.SetActive(true);
                break;
            case 64:
                img64.SetActive(true);
                break;
            case 65:
                img65.SetActive(true);
                break;
            case 66:
                img66.SetActive(true);
                break;
            case 67:
                img67.SetActive(true);
                break;
            case 68:
                img68.SetActive(true);
                break;
            case 69:
                img69.SetActive(true);
                break;
            case 70:
                img70.SetActive(true);
                break;
            case 71:
                img71.SetActive(true);
                break;
            case 72:
                img72.SetActive(true);
                break;
            default:
                break;
        }
    }
}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
使用UnityEngine.UI;
公共阶级一代:单一行为
{
私有整数;
公共游戏对象img1;
公共游戏对象img2;
公共游戏对象img3;
公共游戏对象img4;
公共游戏对象img5;
公共游戏对象img6;
公共游戏对象img7;
公共游戏对象img8;
公共游戏对象img9;
公共游戏对象img10;
公共游戏对象img11;
公共游戏对象img12;
公共游戏对象img13;
公共游戏对象img14;
公共游戏对象img15;
公共游戏对象img16;
公共游戏对象img17;
公共游戏对象img18;
公共游戏对象img19;
公共游戏对象img20;
公共游戏对象img21;
公共游戏对象img22;
公共游戏对象img23;
公共游戏对象img24;
公共游戏对象img25;
公共游戏对象img26;
公共游戏对象img27;
公共游戏对象img28;
公共游戏对象img29;
公共游戏对象img30;
公共游戏对象img31;
公共游戏对象img32;
公共游戏对象img33;
公共游戏对象img34;
公共游戏对象img35;
公共游戏对象img36;
公共游戏对象img37;
公共游戏对象img38;
公共游戏对象img39;
公共游戏对象img40;
公共游戏对象img41;
公共游戏对象img42;
公共游戏对象img43;
公共游戏对象img44;
公共游戏对象img45;
公共游戏对象img46;
公共游戏对象img47;
公共游戏对象img48;
公共游戏对象img49;
公共游戏对象img50;
公共游戏对象img51;
公共游戏对象img52;
公共游戏对象img53;
公共游戏对象img54;
公共游戏对象img55;
公共游戏对象img56;
公共游戏对象img57;
公共游戏对象img58;
公共游戏对象img59;
公共游戏对象img60;
公共游戏对象img61;
公共游戏对象img62;
公共游戏对象img63;
公共游戏对象img64;
公共游戏对象img65;
公共游戏对象img66;
公共游戏对象img67;
公共游戏对象img68;
公共游戏对象img69;
公共游戏对象img70;
公共游戏对象img71;
公共游戏对象img72;
公共屏幕()
{

对于(int a=0;a,可以将其简化如下:

public GameObject[]imgs=new GameObject[72];//这是一个包含72个游戏对象的数组
public void随机生成(){
imgs[Random.Range(0,72)/*索引从0*/]开始。SetActive(true);
}
阅读有关C#阵列的内容。

有两个选项:

除非您需要从其他地方访问这些游戏对象中的每一个,所以您应该考虑使用[SerialZeeField]而不是公共最小访问,等等< /P> 所以

[SerializeField]GameObject imgs;//unity现在警告这一点,可以安全地忽略它。我经常将其设置为null以关闭它
公共屏幕()
{
对于(int a=0;a 0)
imgs[随机范围(0,imgs长度)].SetActive(真);
}
然而,你的resetScreen代码让我想到,它们都是当前对象的子部分,对吗?在这种情况下,如果IMG是这个对象的唯一子部分,你可以做得更少,但前提是它们是唯一的位

只是…根本没有数组,因为unity已经有了它

   public void ResetScreen()
    {
        for (int a = 0; a <transform.childCount; a++)
        {
            transform.GetChild(a).gameObject.SetActive(false);
        }
    }

    public void RandomGenerate()
    {
// if you supply random range with ints, it picks ints, between first and 1 less than last which is what you wanted.
        if (transform.childCount>0)
           transform.GetChild(Random.Range(0, transform.childCount)).gameObject.SetActive(false);

    }
public void ResetScreen()
{
对于(int a=0;a 0)
GetChild(Random.Range(0,transform.childCount)).gameObject.SetActive(false);
}

使用一个数组,然后按整数选择一个介于0和数组长度之间的随机数?
   public void ResetScreen()
    {
        for (int a = 0; a <transform.childCount; a++)
        {
            transform.GetChild(a).gameObject.SetActive(false);
        }
    }

    public void RandomGenerate()
    {
// if you supply random range with ints, it picks ints, between first and 1 less than last which is what you wanted.
        if (transform.childCount>0)
           transform.GetChild(Random.Range(0, transform.childCount)).gameObject.SetActive(false);

    }