В Unity есть несколько способов отследить закрытие игры и выполнить нужную функцию. Вот некоторые из них:
1. Событие OnApplicationQuit(): Unity предоставляет событие OnApplicationQuit(), которое вызывается непосредственно перед закрытием игры. Чтобы использовать это событие, вам нужно создать класс, который наследуется от MonoBehaviour, и реализовать метод OnApplicationQuit(). Внутри этого метода вы можете выполнить нужную вам функцию. Например:
public class GameManager : MonoBehaviour { private void OnApplicationQuit() { // Выполните нужную функцию перед закрытием игры SomeFunction(); } private void SomeFunction() { // Ваш код } }
2. Наследование от класса Application: Unity также предоставляет статический класс Application, у которого есть метод Quit(). Этот метод может быть вызван из любого места в коде, чтобы завершить игру. Вы можете вызвать этот метод, когда надо, и выполнить нужную функцию перед закрытием игры. Например:
public class GameManager : MonoBehaviour { private void Update() { if (Input.GetKeyDown(KeyCode.Escape)) { QuitGame(); } } private void QuitGame() { // Выполните нужную функцию перед закрытием игры SomeFunction(); // Закрыть игру Application.Quit(); } private void SomeFunction() { // Ваш код } }
3. Обработчик событий приложения: Если вам нужно выполнить функцию перед закрытием игры, но при этом игра может закрываться не только при нажатии кнопки выхода, но и по другим причинам, вы можете использовать обработчики событий приложения. Unity предоставляет события OnApplicationFocus(bool hasFocus) и OnApplicationPause(bool pauseStatus), которые вызываются, когда приложение получает или теряет фокус, или когда оно приостанавливается или продолжается. Вы можете использовать эти события, чтобы вызвать нужную вам функцию. Например:
public class GameManager : MonoBehaviour { private void OnApplicationFocus(bool hasFocus) { if (!hasFocus) { // Выполните нужную функцию перед потерей фокуса игры SomeFunction(); } } private void OnApplicationPause(bool pauseStatus) { if (pauseStatus) { // Выполните нужную функцию перед приостановкой игры SomeFunction(); } } private void SomeFunction() { // Ваш код } }
Это лишь некоторые из способов отследить закрытие игры и выполнить нужную функцию в Unity. Вы можете выбрать наиболее подходящий для вашего проекта.