(Mit Unity 4.6.0b20)Unity 4.6: Zur Laufzeit hinzugefügte Schaltflächeninstanzen werden nicht durch die Referenzauflösung skaliert?
Ich habe ein Problem gefunden, wo Prefab Schaltflächengröße korrekt funktioniert, wenn im Editor hinzugefügt, aber scheint Referenzauflösung zu ignorieren, wenn durch Skript hinzugefügt.
Dies verwendet einen Canvas mit Referenzauflösung 1280x720 und MatchWidthOrHeight. Canvas verfügt über eine vertikale Panel-Layoutgruppe für die Schaltflächen. Die Schaltfläche hat die bevorzugte Breite/Höhe und wird als Prefab gespeichert, sodass neue Instanzen zur Laufzeit aus Assets erstellt werden können.
Im Editor ich die Fertig zu Szene ziehen Instanzen auf das Panel hinzuzufügen, die auch Breite 102 und sie stapeln und skalieren schön hat:
Aber wenn ich stattdessen Fügen Sie dem Panel neue Instanzen des Prefab via Script hinzu, die mit der falschen Größe angezeigt werden. Mit Blick auf die Dimensionen ist meine Vermutung die 102 Pixelgröße durch die Referenz Die Auflösung wird nicht skaliert werden:
Der Script-Code erzeugt die Instanz über GameObject.Instantiate() und fügt in das Panel, indem verwandeln. parent:
GameObject uiInstance = (GameObject)GameObject.Instantiate(Resources.Load<GameObject>(assetPath));
uiInstance.transform.parent = unitButtonsPanel.transform;
ich gehe davon aus, entweder es ist mehr, dass, wenn die Taste auf dem Panel als nur Einstellung Elternteil, oder es ist ein Fehler mit der beta ...
Vorschläge Hinzufügen getan werden muss?
nicht sicher, ob ich verstehe, was du meinst „, wenn es exportiert wird – mwk
** schön ** gesichtet - Sie Es ist ganz richtig, standardmäßig, wenn Sie Instantiate, die ** Skalierung standardmäßig auf Null ** in der rectTransform. atemberaubend dumme Bewegung für die Einheit im Namen - aber dann, das ist Unity. – Fattie