UGUI Canvas SortingLayer决定了该Canvas下面的全部子物体的SortingLayer,一个Canvas下面的子物体按照上下顺序排序,越靠前的越容易被遮挡,当子物体拥有Canvas组件时,渲染队列将被重写,该物体的遮挡关系取决于当前物体的Canvas的orderInLyaer,因此UI应该优先按照Layer排序,而后赞成Layer按照OrderInLayer进行排序,同一个OrderInLayer的Canvas下,按照上下顺序排序。
特效一样支持sortingOrder与sortingLayerName,当特效与UI的sortingLayerName一致时,调整特效的sortingOrder能够调整特效在UI中的显示位置,例如特效须要加在A的上面,特效的在orderLayerName一致的状况下,sortingOrder应该大于A的Canvas(从A往上找其父物体,第一个带Canvas的父物体的Canvas就是A的Canvas,A自己能够没有Canvas,此处Canvas相似于NGUI的panel概念)的sortingorder,若是特效要在A,B中间,那么A,B应该在2个不一样的Canvas下面,特效的sortingorder也在A,B 2个Canvas的sortingOrder中间。
特效须要挂的脚本
Renderer []renders = GetComponentsInChildren<Renderer>();
if(renders == null)
return;
for(int i = 0; i < renders.Length; i++){
renders[i].sortingOrder = order;
renders[i].sortingLayerName = "Default";
}