【问题标题】:Instantiate prefab in Unity在 Unity 中实例化预制件
【发布时间】:2016-11-04 22:15:02
【问题描述】:

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

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 左右,为什么?

【问题讨论】:

  • 你的预制件正确吗?另外,您的 newNotification 的父级设置是否正确?
  • 您是否完整阅读了我的问题@Cabrra?是的,他们都是正确的。

标签: c# user-interface unity3d panel


【解决方案1】:

所以看完Unity Documentation: Instantiating the UI element之后,你要做的就是打电话:

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

“false”代表 worldPositionStays 参数,它会缩放 UI。

让我知道这是否适合你。

【讨论】:

    猜你喜欢
    • 2021-10-27
    • 1970-01-01
    • 2014-08-28
    • 2014-11-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多