Это по замыслу.Вы можете изменить значение Canvas.overrideSorting
только на вложенном холсте.
Например, если у вас есть Canvas
, который является корнем других холстов или объектов пользовательского интерфейса, вы не сможете изменить значение Canvas.overrideSorting
.
Если у вас есть любой Canvas
, являющийся дочерним другого Canvas
, вы сможете изменить значение Canvas.overrideSorting
.
Требования дляменяется Canvas.overrideSorting
:
1 . Canvas
, который является ребенком другого Canvas
- Холст // невозможно изменить
2 . GameObject должен быть активен в иерархии, а компонент Canvas
должен быть включен дляможет измениться Canvas.overrideSorting
.
Активный в иерархии означает, что все родительский объект Canvas GameObject Canvas
, для которого вы хотите изменить Canvas.overrideSorting
, должен быть активным, а сам сценарий Canvas
должен быть включен.Это можно проверить с помощью свойства gameObject.activeInHierarchy
.
Если Canvas.gameObject.activeInHierarchy
равно , а не true
, вы не можете установить или изменить свойство Canvas.overrideSorting
.Лучше проверить эти свойства, прежде чем пытаться изменить Canvas.overrideSorting
.
if (_canvas.gameObject.activeInHierarchy && _canvas.enabled)
_canvas.overrideSorting = true;
else
Debug.Log("Cannot change Canvas overrideSorting");