короче: потому что это не то, что SetActive
используется для .. это относится только к самому объекту , а не к дочерним элементам.
Вы, кажется, деактивируете каждого ребенка в вашей сцене или сборном, а затем активируете только основной Canvas
объект.
Итак, самое тривиальное решение: не отключать какие-либо объекты в сцене, но только сам объект Canvas
* 1014. *
Быстрый обходной путь, конечно, будет активировать все дочерние объекты рекурсивно, хотя я бы не рекомендовал go таким образом
// returns all recursive children transforms including this transform as well
// by passing true you also get disabled and inactive components
foreach(var obj in GetComponentsInChildren<Transform>(true))
{
obj.gameObject.SetActive(true);
}
это, конечно, не очень эффективно;)