2

我想从 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 元素时,我得到了我想要的和我期望的。

在此处输入图像描述

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

谢谢

4

1 回答 1

1

变换.SetParent

public void SetParent(Transform parent, bool worldPositionStays);

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

因此 usingtransform.SetParent(x, false)将重置其位置、比例和旋转。

于 2020-01-28T11:18:11.817 回答