[笔记][Unity3D]关于动态修改Canvas的renderMode、sortingLayerName、sortingLayerId属性

1,709 阅读1分钟

设置sortingLayerName和sortingLayerId属性在renderMode为RenderMode.ScreenSpaceOverlay的情况不会生效,保持sortingLayerName=Default和sortingLayerId=0。 renderMode属性读取的时候,会执行以下判断:

//伪代码()
renderMode
{
    get
    {
        ...
        if(m_renderMode == RenderMode.ScreenSpaceCamera && m_camera == null)
        {
            return RenderMode.ScreenSpaceOverlay
        }
        ...
    }
}

所以,想要改变sortingLayerName和sortingLayerId,必须先设置Camera