Unity4.3 bug GetChild顺序错乱

历史原因,目前有个项目是unity4.3版本,偶然发现 transform.GetChild 获取的顺序并不是想要的。使用两个版本进行测试。

测试代码

using UnityEngine;
using System.Collections;

public class GetChildTest : MonoBehaviour {

    // Use this for initialization
    void Start () {
        var childCount = transform.childCount;
        for (int idx = 0; idx < childCount; idx++)
        {
            var child = transform.GetChild(idx);
            if(child) Debug.Log(child.name);
        }
    }
}

 

解释:上面这段代码是测试根据索引获取到的child是否按名字顺序

注意:getChild()只能获取 active = true 的transform

 

Unity4.3.4

Unity4.3 bug GetChild顺序错乱_第1张图片

 

Unity5.3.1

Unity4.3 bug GetChild顺序错乱_第2张图片

 

解决方法

在有bug的unity版本中,使用FindChild(xxx+index)保证按顺序获取到child

你可能感兴趣的:(Unity4.3 bug GetChild顺序错乱)