您的位置:首页 > 移动开发 > Unity3D

Unity3D 实例化UGUI自适应的预设

2017-01-19 23:38 435 查看
拉个预设如图:



public GameObject m_Prefab;

void Start () {
GameObject go=Instantiate(m_Prefab);
go.transform.SetParent(transform);
}


我们直接实例化这个设置好自适应的UGUI预设,如果我们直接实例化会这样:



这样的结果完全不是我们想要的,你可能会说,

go.transform.localPosition = new Vector3(0, 0, 0);


直接加句这样的代码不就好了?

其实不然,你运行下会发现还是不对。

我们需要改变的是RectTransform属性,添加以下代码,问题完美解决:

go.GetComponent<RectTransform>().anchoredPosition = new Vector3(0, 0, 0);
go.GetComponent<RectTransform>().sizeDelta = new Vector2(0, 0);


或者可以这样:

go.GetComponent<RectTransform>().offsetMax = new Vector2(0, 0);
go.GetComponent<RectTransform>().offsetMin = new Vector2(0, 0);


其实unity SetParent已经为我们提供了重载方法了,直接设置SetParent的第二个参数为false就可以解决了。

go.transform.SetParent(transform,false);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: