Jump to content
Unity Insider Forum

Canvas und Anchors


Mino1337

Recommended Posts

Hallo,

ich habe offenbar ein Verständnisproblem in Bezug auf die Anchors im Canvas.

Ich habe einen Button und der ist in einem Canvas. Diesem Button habe ich einem Anchor rechts-unten zugewiesen. Im Landscape-Format ist er auch ungefähr immer rechts-unten aber immer nur so ungefähr an der selben Stelle im Bezug auf die Auflösung. Die Abstände zum Rahmen ändern sich, was sie nicht sollten. Ich will das dieser Button bei jedweder Auflösung rechts-unten mit einem Abstand zum Rahmen von ca. 50 Pixeln ist ?!

Nach meinem Verständnis und allen Tutorials die ich gesehen habe muss ich dafür nur einen Anchor setzen und fertig.

Wenn ich was ganz verrücktes mache und statt Landscape ein Portrait-Format nehme dann verschwindet der Button je nach Auflösung komplett obwohl er doch rechts-unten sein sollte mit einem Abstand von 50 Pixeln zum Rand.

Irgendwas hab ich da anscheinend noch nicht so recht vertsanden. Könnte mich bitte jemand erleuchten ? =D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, ich hatte eine Erleuchtung. Ich hatte mein Canvas in einem GameObject drin um es einfach ausschalten zu können. ich habs mal rausgenommen und nun funktioniert es genauso wie in den ganzen Tutorials beschrieben. Jetzt kann ich es aber nichtmehr ausschalten -.- ....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich kann den Canvas mit dem Häckchen ausschalten im Editor aber nicht per Script.

Ich habe zwei Canvas für verschiedene UI Darstellungen. Die/das/der eine ist mein MenuUI und das andere mein SpielUI wo meine Leben und Score ect. drauf sind.

Demensprechend schalte ich das SpielUI ein wenn ich ein Level starte oder das MenuUI wenn ich wieder ins Menu wechsel.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe es gerade ausprobiert und du hast Recht.

Man kann Canvas zwar nicht mit .SetActive(false) ausschalten aber dafür mit .enabled = false; ...

Ich bin wohl damals davon ausgegangen das es nicht geht und hab dann diese Hilfslösung genommen. Na dann ist ja alles wunderbar =D ...

Dankesehr =D

Link zu diesem Kommentar
Auf anderen Seiten teilen

SetActive schaltet das GameObject aus, enabled nur die Komponente. Ersteres schaltet auch alle Objekte im Canvas aus, also auch z.B. alle Scripts. Die Canvas-Komponente zu deaktivieren deaktiviert nur das Rendering. Je nach dem, was du willst, solltest du eher das eine oder das andere machen.

Wenn du den Canvas hast, musst du davon das GameObject ranholen, um SetActive auszuführen.

meinCanvas.enabled = false;
meinCanvas.gameObject.SetActive(false);

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...