Хочу переносить объект игрока из одной сцены в другую, в юнити. При этом сохранять все его параметры, параметры скриптов, которые на игроке висят, прикрепленные к игроку объекты и т.д. Как можно это сделать удобно?
Сейчас переношу через префаб, к котором на новой сцене подгружаю все прикрепленные объекты и данные.
помогает DontDestoyOnLoad + все объекты, которые хочется переносить в другие сцены, должны быть на верхнем уровен или в объектах, которые тоже помечены как DontDestoyOnLoad. GavriKos, спасибо за коммент с DontDestoyOnLoad
nano_e_t_4, ну так посмотрите попал ли он в группу донтдестроев - в иерархии есть.
И если вы руками его уничтожаете - то конечно же он будет уничтожен и не появится
дак я его руками уничтожаю только если уже такой объект есть
но тем не менее, я пробовал отдельно добавлять на метод awake\start DontDestroyOnLoad(gameObject) и все равно оно не прокидывается между уровнями. + оно видимо не попадает в группу dontDestroyOnLoad
А) Уметь сериализовать состояния игрока. Условно превращать всё в json, и на новой сцене его загружать получая нового персонажа не отличимого от старого. (технологично)
Б) Загружать новою сцену в дополнении к старой. Переносить "физически" gameobject игрока в новую сцену, а старую затем удалять. (просто)
да, делаю щас по первому варианту, но думал, может есть вариант попроще (даже проще варианта б), типа в функции loadscene прокидывать аргументом gameobjeсе и этот объект будет подгружаться в новой сцене, а юнити сама разрулит все сложности с передачей