NGUI UIGrid 动态刷新布局 && BUG FIX


 1     /// <summary>
 2     /// "1" => 对应的一个UISpirte,"1234" => 对应四个预设
 3     /// </summary>
 4     /// <param name="scoreGrid"> 设置中间为锚点 </param>
 5     /// <param name="curScore">like "1234"</param>
 6     /// <param name="numberPrefab"> 对应 的 预设</param>
 7     /// <returns></returns>
 8     IEnumerator ShowScore(UIGrid scoreGrid, string curScore, GameObject numberPrefab)
 9     {
10         foreach (Transform item in scoreGrid.transform)
11         {
12             Destroy(item.gameObject);
13         }
14 
15         //一定要 加上 这一局  不然 设置 grid 中间为锚点 Reposition() 不是预期的那样
16         yield return new WaitForEndOfFrame();
17 
18 
19         char[] number = curScore.ToCharArray();
20         for (int i = 0; number != null && i < number.Length; i++)
21         {
22             GameObject child = NGUITools.AddChild(scoreGrid.gameObject, numberPrefab);
23             UISprite showNum = child.GetComponent<UISprite>();
24             showNum.spriteName = number[i].ToString();
25         }
26 
27         scoreGrid.Reposition();
28         scoreGrid.repositionNow = true;
29     }

 

2015-4-27 

用上面的方法删除所有子物体 Edit模式 不行,试试用下面的方法,可能是 Edit模式 下删除子物体 的时候引发了重新内部元素排序。暂时还没有测试 Run 模式

1 List<Transform> list = new List<Transform>();
2 foreach (Transform item in transform)
3 {
4     list.Add(item);
5 }
6 foreach (var item in list)
7 {
8     NGUITools.Destroy(item.gameObject);
9 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM