UI的深度
优先看父节点在Hierarchys视图中的排序,决定父节点的渲染先后。然后在依次看子节点中的Hierarchy视图的排序,排在后边的在最前方显示。
两个图之间插一个图
布界面的时候我们可以按照这个排序来让我们的drawCall 最小化。可是如果我想运行的时候在两个图之间插一个图该怎么办?脚本如下所示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | using UnityEngine; using System.Collections;
public class UIMain : MonoBehaviour {
void Start () { GameObject button = GameObject.Instantiate(Resources.Load<GameObject>("button"))as GameObject; button.transform.parent = transform; button.transform.localPosition = Vector3.zero; button.transform.localScale = Vector3.one;
GameObject AObj = transform.Find("A").gameObject;
GameObject BObj = transform.Find("B").gameObject;
button.transform.SetSiblingIndex(AObj.transform.GetSiblingIndex());
}
} |
transform.SetSiblingIndex 和 GetSiblingIndex就是设置与获取 GameObject在兄弟节点的位置。。