Можно ли настраивать (располагать спрайты, добавлять видимые узлы и т. д.) содержимое SKScene в методе инициализации?
Где правильное место для таких вещей: init? сделалMoveToView? что-то другое?
Можно ли настраивать (располагать спрайты, добавлять видимые узлы и т. д.) содержимое SKScene в методе инициализации?
Где правильное место для таких вещей: init? сделалMoveToView? что-то другое?
didMoveToView: вызывается каждый раз, когда сцена представляется SKView. Плюсы позиционирования и добавления спрайтов в didMoveToView: вы можете инициализировать множество представлений, не занимая при этом много памяти. Минусы: если вы удалите представление, а затем снова добавите его, didMoveToView: вызывается снова. Это означает, что вам нужно обязательно сбросить сцену в начале didMoveToView: (только если вы собираетесь удалить и добавить снова).
init вызывается при инициализации SKScene. Плюсы использования init для позиционирования и добавления спрайтов: он вызывается только один раз, и все будет готово, как только вы представите его на сцене. Если вам нужно предварительно загрузить сцены для быстрого переключения, это может быть удобно. Минусы: каждая сцена будет занимать память, необходимую для выполнения всего добавления спрайтов при инициализации, а не при ее отображении.
Лично я предпочитаю делать все в методе init.