2016-07-02 9 views
1

Ich bin eine Fertigplatte in der Einheit Instanziieren und ich bin Einstellungen es ist Eltern auf eine andere Platte wie folgt aus:Instantiate Fertig in Unity

GameObject notificationPanel = (GameObject) Resources.Load("NotificationWindow"); 
Text notificationText = notificationPanel.GetComponentInChildren<Text>(); 
if (notificationType == NotificationType.Warning) 
{ 
    notificationText.color = Color.red; 
} 
notificationText.text = text; 
GameObject newNotificationWindow = 
(GameObject) Instantiate(notificationPanel, new Vector3(0, 0, 0), Quaternion.identity); 
newNotificationWindow.transform.SetParent(Settings.NotificationHolder.transform); 

jedoch, wenn instanziiert es mit einer wahnsinnigen Größe ist, die Mutterplatte hat eine Layout-Gruppe mit einer festen Größe der Zelle in ihr, warum beeinflusst dies nicht das? Das neue Panel ist etwa 10 mal größer als mein Bildschirm. In der Hierarchieansicht wird das neue Panel korrekt als untergeordnetes Element angezeigt. Auch die 'z' Position ist um - 3900 warum?

+0

Ist Ihr Prefab korrekt? Ist das Elternelement von newNotification korrekt eingestellt? – Cabrra

+0

Haben Sie meine Frage @Cabrra vollständig gelesen? Ja, sie sind beide richtig. – PetqImaQkaputka

Antwort

1

So die Unity Documentation: Instantiating the UI element Nach der Lektüre alles, was Sie tun müssen, ist zu nennen:

newNotificationWindow.transform.SetParent(Settings.NotificationHolder.transform, false); 

Die "false" stellt worldPositionStays Parameter und diese skaliert die UI.

Lassen Sie mich wissen, ob dies für Sie funktioniert.