https://www.youtube.com/watch?v=Z6oBDolKAHU

Ich hab das schonmal wem mithilfe dieses Videos (meins) erklärt. Ich hoffe, dass ich dein Problem richtig verstanden hab und dir das hilft!

...zur Antwort

Du kannst das machen, indem du bei Knopfdruck eine Funktion ausführt, die das Canvas/GameObject oder was das in der Mitte ist deaktiviert ("canvas1.SetActive(false);") und dann ein anderes Canvas in der Mitte aktivierst ("canvas2.SetActive(true);"), allerdings muss das zu Beginn deaktiviert sein. Außerdem muss das in der Mitte das Child eines Canvas' sein.

Ich würde es so machen:

private int offerNumber = 1;
public Canvas canvas1; //Hier und bei denen drunter ziehst du im Inspector das Canvas aus der Mitte rein(das Angebot)
public Canvas canvas2;
public Canvas canvas3;

public void ChangeOffer()
{  
  if(offerNumber == 1)
  {
    canvas1.SetActive(false);
    canvas2.SetActive(true);
    offerNumber += 1;
  }
  else if(offerNumber == 2)
  {
    canvas2.SetActive(false);
    canvas3.SetActive(true);
    offerNumber += 1;
  }
  else if(offerNumber == 3)
  {
    canvas3.SetActive(false);
    canvas1.SetActive(true);
    offerNumber = 1;
  }
}
...zur Antwort

https://www.youtube.com/watch?v=Z6oBDolKAHU

Hab das mal schnell für dich aufgenommen. Ich hoffe, du verstehst es!

...zur Antwort

Ja, ich habe das selbe Problem mit while-Schleifen. Weiß auch nicht warum, aber ich würde das while dann einfach zu einem if machen. So klappt das bei mir dann auch. Aber sorry, mehr weiß ich auch nicht.

...zur Antwort