1.层级相关

Canvas中属性如下

 

排序(遮盖关系)方式如下:

先按照SortingLayer排序,大的在上面

SortingLayer相同(同层)的情况下,比较OrderInLayer,同样是大的在上面

以上两者都相同时,以节点树中的上下顺序决定,上下顺序在代码中即SetSiblingIndex

 

若使用了嵌套的Canvas

选中OverrideSorting 可以改变排序(不受父节点影响)

 

 

2.触摸响应

默认UI元素可以捕获触摸事件(并停止向下传播)/或不捕获触摸事件

捕获触摸事件需要满足以下条件

(1)UI节点上RaycastTarget选中

 

(2)其受影响的Canvas节点中启用了GraphicRaycaster组件

 

必须同时满足以上两点,才可能捕获触摸

且多个节点满足条件时,仅排序在最上面的节点可以捕获触摸,之后触摸事件不再向下传递

排序方式与显示上的排序逻辑一致如上文层级关系中所述

 

 

默认在Hierarchy中创建的Canvas如下,已经包含了GraphicRaycaster

 

而在Inspector中Add得到的Canvas组件如下是不包含GraphicRaycaster组件的(嵌套/非嵌套都一样)

 

 

(3)传递触摸事件

Cocos中可以方便的向下传递触摸事件

Unity中还未详细研究

TODO

http://www.xuanyusong.com/archives/4241