catcattt
catcattt

Reputation: 97

gameobject array different sequence in built from playmode?

My problem is inside playmode I get expected array sequence: showing all gameobjects, RedCube, Interior, BlueCube, and then GreenCube. But, after I built it and test in my android. I get a different array sequence: showing all gameobjects, GreenCube, BlueCube, RedCube and then Interior. This screenshot shows the sequence of my array.image0.
There are 4 gameobjects under gameobject - Levels Image1. Added a script to Levels.... Image2complete scene screenshot.

public GameObject[] levels;
public Button levelBtn;
int i = 0;

private void Awake()
{
    levels = GameObject.FindGameObjectsWithTag("levels");

    Button btn = levelBtn.GetComponent<Button>();

}

// Start is called before the first frame update
void Start()
{
    levelBtn.onClick.AddListener(onLevelclick);
}

public void onLevelclick()
{
    if (i < levels.Length - 1)
    {
        i++;
    }
    else if (i >= levels.Length - 1)
    {
        i = 0;
    }
    Debug.Log(i);

    if (i == 0)
    {
        levels[0].SetActive(true);
        levels[1].SetActive(true);
        levels[2].SetActive(true);
        levels[3].SetActive(true);

    }
    else if (i == 1)
    {
        levels[0].SetActive(true);
        levels[1].SetActive(false);
        levels[2].SetActive(false);
        levels[3].SetActive(false);
    }
    else if (i == 2)
    {
        levels[0].SetActive(true);
        levels[1].SetActive(true);
        levels[2].SetActive(false);
        levels[3].SetActive(false);
    }
    else if (i == 3)
    {
        levels[0].SetActive(true);
        levels[1].SetActive(true);
        levels[2].SetActive(true);
        levels[3].SetActive(false);
    }
}

Inside this script I have a gameobject array. When I click the UIbutton, it will loop within the array.length.... But the array sequence is different from playmode and built. I couldn't figure out why?

Upvotes: 1

Views: 61

Answers (1)

Heejae Kim
Heejae Kim

Reputation: 539

If you assign gameobjects to levels in the unity inspector like image0, you don't need to this line.

levels = GameObject.FindGameObjectsWithTag("levels");

Upvotes: 1

Related Questions