うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】Canvas の overrideSorting がスクリプトから変更できない

using UnityEngine;
 
public class SampleMonoBehaviour : MonoBehaviour
{
    [SerializeField]
    private Canvas _canvas;
 
    public void Init()
    {
        _canvas.overrideSorting = true;
        _canvas.sortingOrder = 10;
    }
}

上記コードを他のインスタンスが呼び出した際に、overrideSortingsortingOrder が変わらないことがあった

調べてみると GameObject が 非アクティブの状態で overrideSortingsortingOrder を実行しても変更されないらしい

そのため、gameObject.activeSelf が false の場合警告を出すか、そもそも実行させないような対応が必要になる