2016-12-31 3 views
2

Предположим, у меня есть сцена с несколькими сетками, такими как деревья, ящики и т. Д., Назовите ее уровнем 1.Нужно ли перезагружать Mesh при переключении сцены?

После того, как я закончу игру уровня 1, я переключаюсь на уровень 2 следующим образом.

SceneManager.LoadScene (1, LoadSceneMode.Single); //level2 scene index is 1 

Дело в том, что уровень 2 использует те же системы 1-го уровня. Разгружаются ли они -> перезагружаются?

Я не говорю о DontDestroyOnLoad, так как мне не нужны одинаковые экземпляры GameObjects в сцене уровня 2.

Я говорю о данных модели каждого объекта (меши), а не о своих экземплярах. Я знаю, что экземпляры удалены, но я думаю, что Unity каким-то образом знает, что следующая сцена использует те же Meshes и сохраняет их. Мне просто нужно знать, выгружаются ли Meshes и перезагружаются при переключении сцены.

ответ

2

Объекты, которые вы не вызываете DontDestroyOnLoad, уничтожаются, как только вы меняете сцену, используя LoadScene (как если бы вы набрали на них все Destroy), так что да, перезагрузите. Затем они уничтожаются (если они присутствуют в следующей сцене), они повторно создаются.

Если вы редактируете конкретный объект, созданный в сцене, эти изменения принадлежат этому объекту.

Если вы загрузите ту же сцену более одного раза, то этот конкретный объект будет иметь ваши изменения. Однако, если вы загружаете другую сцену с этим префабом, тогда сборка будет новой, без изменений.

Если вы хотите, чтобы все объекты, созданные таким образом, чтобы быть похожими на этот объект, вы должны отредактировать сборный файл. Для этого просто нажмите кнопку «применить».

prefab buttons

Это позволит сделать все объекты, которые становятся воплощенные имеют изменения.

Если вы хотите, чтобы какой-то объект имел изменения, а некоторые не имели их, вы делаете отдельный сборник, просто перетащите «имя» этого объекта из иерархии в свою папку проекта. Вы только что создали новый сборник, и вы можете его использовать.

Также помните, что это не относится к редактированию, выполненному в игре. Эти изменения вы делаете (как разработчик не как игрок) в сцене. Редактирование вида игры (например, если игрок сжимает куб) теряется после закрытия игры.

+0

Уверены ли вы? Я говорю о данных модели каждого объекта, а не о его экземплярах. Я знаю, что экземпляры удалены, но я думаю, что Unity каким-то образом знает, что следующая сцена использует те же данные модели и сохраняет ее. – Lestat

+0

где вы держите данные модели? каковы точные данные модели? не являются ли они переменными? –

+0

Если это что-то, что вы редактируете в своих сборниках, каждый созданный экземпляр будет иметь те же правки. поэтому следующая сцена будет иметь ваши изменения. Если изменения будут выполняться «во время выполнения» по всему уровню, тогда эти изменения будут потеряны с новой сценой. дайте мне больше информации, чтобы я точно понял, что вы на –

Смежные вопросы