В моей игре, если игрок впервые играл в игру, у меня появляется изображение, которое отображается. Я его экземпляр на холсте, как так:Gameobject, созданный в холсте, появляется за другими элементами холста
if (PlayerPrefs.GetInt("First Time", 1) == 1)
{
introEnabled = true;
//pause all activity
pause.pauseOrResume();
intro = Instantiate (Resources.Load ("intro"), transform.position, Quaternion.identity) as GameObject;
Canvas canvas = GameObject.Find("Canvas").GetComponent<Canvas>();
intro.transform.SetParent(canvas.transform, false);
//robot = Instantiate (Resources.Load ("robot"), transform.position, Quaternion.identity) as GameObject;
PlayerPrefs.SetInt("First Time", 0);
PlayerPrefs.Save();
}
Я могу видеть в инспекторе, когда игра запущена, что при создании объекта, он появляется на холсте. Я просто не знаю, почему он не будет отображаться поверх всех других объектов на холсте.
Режим рендеринга холста установлен на «Экранное пространство - Наложение», и оно установлено в 0 в порядке сортировки. Созданный игровой объект также имеет порядок сортировки 0 и находится в слое по умолчанию.
Ничего не пробовал. Значения z не имеют значения и даже помещают холст и объект-экземпляр в уровень по умолчанию и устанавливают холст в порядке сортировки 2, а экземпляр-экземпляр для порядка сортировки 1 (поэтому он отображается первым) не создает разница.
После добавления transform.SetAsLastSibling() как к холсту, так и к вновь созданным объектам игры в отдельных попытках вновь созданный объект игры по-прежнему появляется за старыми элементами холста. – saboehnke
И у них есть 'RectTransform'? И компоненты 'Image'? – maksymiuk
Недавно созданный объект игры имеет преобразование и средство создания спрайтов. Вот и все. Это сборник, который я создаю. – saboehnke