2015-03-28 2 views
1

У меня две сцены в моей игре (Главное меню и игра). В главном меню есть две кнопки, каждая из которых отправляет разные значения в игру. Так как я могу установить это значение в сценарии других сцен.Как отправить сообщение в другую сцену

ответ

1

Если я правильно понимаю, вы пытаетесь передать настройки между сценой основного меню и сценой игры.

Что вы можете сделать, это создать сценарий GameSettings, содержащий все ваши настройки, и вставить его в игровой объект вашей сцены основного меню. Сохраните настройки в этом скрипте.

Загрузка сцены игры обычно уничтожает все существующие игровые объекты, но Unity предоставляет функцию Object.DontDestroyOnLoad(), которая предотвратит уничтожение объекта при загрузке. Используйте это на своем скрипте GameSettings и он будет существовать как в главном меню, так и в игровой сцене, и вы сможете получить сохраненные настройки из игровой сцены.

Проверьте документацию для получения дополнительной информации: http://docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.html

Вот пример:

public class GameSettings : MonoBehaviour 
{ 
    public int NumberOfPlayer; 
    /* Add other game settings here ... */ 

    void Awake() 
    { 
     DontDestroyOnLoad(transform.gameObject) 
    } 
} 

Надеется, что это помогает :)

1

Любая переменная, объявленная static в сценарии, будет сохранена во всех сменах сцены. Если у вас есть сценарий в обеих сценах и задано значение статической переменной в одной из сцен, экземпляр сценария в другой сцене получит одно и то же значение.

+0

Это хороший ответ. Но я думаю, что ему будет сложно использовать Статику. Я думаю, ему нужен более простой. Он может войти в метод, пытающийся получить доступ к нестационарному члену, где новые кодеры могут сходить с ума. Но да, статические переменные хороши. Просто убедитесь, что вы знаете правила. Как и статические переменные, общие для других классов, одно изменение и все последующие. – Aizen

Смежные вопросы