У меня есть две сцены. Главное меню и игровой процесс сцены. Все мои объекты в моей игре находятся под одним родительским игровым объектом, который называется Main Game. И этот объект отключен при запуске игры. Сначала активируется сцена главного меню.
Когда я нажимаю кнопку «ВОСПРОИЗВЕДЕНИЕ» в главном меню, я хочу установить значение true для объекта Основной игры в другой сцене.
![Main Menu](https://i.stack.imgur.com/C0xpE.jpg)
Этот скрипт прикреплен к игровому объекту Главного меню:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class MainMenu : MonoBehaviour
{
public void PlayGame()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1, LoadSceneMode.Additive);
var mainGame = GameObject.FindGameObjectWithTag("Main Game");
mainGame.SetActive(true);
}
public void QuitGame()
{
Application.Quit();
}
}
Я пытался использовать FindGameObjectWithTag, но переменная mainGame пуста.
И этот скриптприкреплен к игровому объекту Назад в главное меню:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class BackToMainMenu : MonoBehaviour
{
// Variables
private bool _isInMainMenu = false;
public GameObject mainGame;
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
if (!_isInMainMenu)
{
SceneManager.LoadScene(0, LoadSceneMode.Additive);
// -- Code to freeze the game
mainGame.SetActive(false);
}
else
{
SceneManager.UnloadSceneAsync(0);
// -- Code to unfreeze the game
mainGame.SetActive(true);
}
_isInMainMenu = !_isInMainMenu;
}
}
}
Логика, как мне кажется, должна быть:
Начало игры со сценой главного меню.
Кнопка PLAY для запуска новой игры.
Клавиша ESCAPE для приостановки / возобновления игры.
Номер 3, если нажать клавишу выхода один раз, чтобы вернуться в главное меню, а затем еще раз нажать клавишу выхода, чтобы вернуться и возобновить игру с текущей точки, либо если она находится в середине сцены вырезания, либо просто простаивает в игре.
Моя первая проблема - получить ссылку на объект Main Game в Mai. n Сцена меню.
Я использую LoadSceneMode.Additive, потому что я не хочу загружать каждый раз другую сцену, а переключаться между ними, поэтому все игровые объекты игровой сцены находятся в Основной игре.