В Unity, когда вы загружаете сцену с использованием `SceneManager.LoadScene`, состояние текущей сцены полностью уничтожается и заменяется новой сценой. Это означает, что все объекты, включая интерфейс пользователя, присутствующие в старой сцене, будут уничтожены.
Чтобы сохранить UI или любой другой GameObject при переключении сцен, вы можете использовать метод `DontDestroyOnLoad()`. Он помечает объект таким образом, что он не будет уничтожен при загрузке новой сцены.
Вы можете добавить эту функциональность в скрипт, который управляет вашим интерфейсом пользователя. Вот пример скрипта, который сделает ваш UI объект неуничтожаемым:
```csharp
using UnityEngine;
public class PersistentUI : MonoBehaviour
{
void Awake()
{
DontDestroyOnLoad(this.gameObject);
}
}
```
Просто добавьте этот скрипт к объекту UI, который вы хотите сохранить между переключениями сцен.
Однако стоит отметить, что злоупотребление `DontDestroyOnLoad` может привести к дублированию объектов, если вы не будете аккуратно управлять их жизненным циклом. Например, если у вас на каждой сцене будет свой UI объект с этим скриптом, и вы переключитесь обратно на сцену, где он уже был, то у вас возникнет дублирование этого объекта.
Более того, если ваш UI объект зависит от данных или состояния сцены, которая загружается, этот подход может не подойти, поскольку ваш UI не будет автоматически обновляться с новыми данными из новой сцены. В таком случае может потребоваться дополнительная логика для синхронизации UI со сценой.
Если ваш UI элемент является частью ассета для диалогов, убедитесь, что вы понимаете, как конкретно этот ассет работает, некоторые ассеты могут иметь свои собственные методы для управления персистентностью элементов UI между сценами или для переноса данных между сценами. В таком случае следует ознакомиться с документацией конкретного ассета.