在Unity中实例化预制件

时间:2016-07-02 18:44:01

标签: c# user-interface unity3d panel

我正在以统一方式实例化一个预制面板,我将它设置为另一个面板的父级,如下所示:

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);

然而,当实例化它是一个疯狂的大小时,父面板有一个布局组,其中有一个固定大小的单元格,为什么这不影响它?新面板比我的屏幕大10倍左右。在层次结构视图中,新面板在其父级下正确显示为子级。 'z'位置也在 - 3900左右?

1 个答案:

答案 0 :(得分:1)

所以在阅读Unity Documentation: Instantiating the UI element之后,您只需致电:

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

“false”表示worldPositionStays参数,这会缩放UI。

请告诉我这是否适合您。

相关问题