所以我有多个类别按钮,每个类别有 20 多个项目。因此,按下按钮时制作预制件并实例化。问题是当我实例化预制件时,我必须使用名称、精灵、btn 点击事件等信息对其进行初始化。这将需要时间来实例化预制件和游戏挂起。这是代码
for (int i = 0; i < prefab.Length; i++)
{
GameObject go = Instantiate(basePrefab) as GameObject;
go.SetActive(true);
go.transform.SetParent(prefabParent, false);
go.transform.localScale = Vector3.one;
go.GetComponent<Category>().Init(prefab[i]);
}
此代码在按钮单击中调用。或者,为了在 start 方法中实现一些性能,我已经在一个空的游戏对象上实例化了一些 basePrefab,并且在按钮单击时只需更改父级并初始化它们。这种方法会带来一些好处,但游戏仍然会挂起 2 秒这是代码
for (int i = 0; i < prefab.Length; i++)
{
GameObject go = InstantiatedGameObject[i];
go.SetActive(true);
go.transform.SetParent(prefabParent, false);
go.transform.localScale = Vector3.one;
go.GetComponent<Category>().Init(prefab[i]);
}
任何提高性能的解决方案?
所以这里是关于预制内容:基本上预制包含背景图像,此图像中的蒙版图像类别图像,选择图像和文本。在初始化函数中类别图像更改和文本值更改此外背景包含初始化中的按钮设置此按钮的单击事件