【问题标题】:Unity GridLayoutGroup dynamicaly created cells size problemUnity GridLayoutGroup 动态创建单元格大小问题
【发布时间】:2020-05-13 07:05:32
【问题描述】:

我想从 Prefab 填充 GridLayoutGroup 孩子的动态。 这是我的 GridLayoutGroup 设置

这是我的动态创建单元的代码

        for (int i = 0; i < formSkins.Count; i++)
        {
            GameObject skinElement = Instantiate(prifabSkinElemet, new Vector3(transform.position.x, transform.position.y, transform.position.z), Quaternion.identity);
            skinElement.transform.SetParent(skinElementParent.transform);
        } 

这是我得到的结果:

但是,当我通过拖放添加预制组件(单元格)到 GridLayutGroup 元素中时,我得到了我想要的和期望的结果。

有人能告诉我为什么动态创建孩子的大小与拖放时不匹配吗?

谢谢

【问题讨论】:

  • SetParent(x, false)
  • @Iggy 谢谢,把这个写成我会接受的正确答案

标签: unity3d unity-container unity-ui


【解决方案1】:

Transform.SetParent

public void SetParent(Transform parent, bool worldPositionStays);

worldPositionStays: 如果为 true,则修改父相对位置、缩放和旋转 使对象保持相同的世界空间位置、旋转和 像以前一样缩放。

所以使用transform.SetParent(x, false) 将重置其位置、比例和旋转。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-01
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 2016-02-29
    相关资源
    最近更新 更多