1. 程式人生 > >【轉】記一次Canvas 設定 overrideSorting 失敗

【轉】記一次Canvas 設定 overrideSorting 失敗

我們專案裡也遇到過。  UI的prefab 載入後onEnable裡 設定上面canvas的 overrideSorting 沒有效果。  原來prefab 載入後已經觸發onEnable了, 但此時還沒掛載到UI的Canvas下面。


https://www.cnblogs.com/pmsl/p/8885640.html

以下轉發

問題描述

        GameObject obj = new GameObject("Object");
        var c = obj.AddComponent<Canvas>();
        c.overrideSorting = true;
        c.sortingOrder = order;
        obj.transform.SetParent(parent);

程式碼邏輯

這段程式碼是想,給生成的一個GameObject掛一個 Canvas ,並且設定它的層級
結果發現這段程式碼並沒有達到預想的目的。

原因

新生成的 GameObject 預設是在世界節點下的,這時Canvas的 overrideSorting 屬性時不容許修改的。因此 overrideSorting = true,等於沒有設定。可想而知達不到預期的效果也是正常的