Найкраще, коли в грі можна зберігатися, натиснувши певну клавішу. Швидке збереження і завантаження, зручності і всі справи. Але, все частіше в сучасних іграх використовуються контрольні точки, які створюють для гравця додаткові складності і накручують час проходження. Весело, правда ж? Проте, ігри бувають різні і в деяких з них, система збережень з чекпоінтів, буде в самий раз. Чекпоінти можуть зберігати дані відразу в файл, або просто тимчасово зберігати їх в пам'яті. І сьогодні в нашому прикладі, реалізуємо другий варіант.
Важливе зауваження. Об'єкт / персонаж, яким ви керуєте, повинен мати компоненти: Collider і Rigidbody. А так-же тег Player або будь-який інший, головне не забудьте змінити його і в самому скрипті теж.
І так, створюємо С # скрипт Respawn, він власне відповідатиме за повернення героя і зберігати необхідні дані. Почнемо речі з них, нам потрібно зберегти координати з останньої контрольної точки:
Скрипт повинен знати, гравець мертвий чи ні:
Ну і сам персонаж, плюс вектор зміщення. Наприклад, гравець з'являється трохи вище, заданих координат і падає на поверхню. Це потрібно, щоб не "провалитися" в графіку:
Під час старту сцени, об'єкт відсутній?
Функція воскресіння, з невеликою затримкою:
І відстежуємо зміни адреси:
До речі кажучи, в цей скрипт можна додати функцію збереження в файл. якщо потрібно.
Продовжимо. Чекпоінт робимо зі звичайного куба, Collider треба перемкнути в режим тригера ну і вимкнути Mesh Renderer само-собою. На куб причепити ось такий простенький скрипт Checkpoint:
Якщо гравець заходить в тригер, то зберігаються його поточні координати.