Я начал разработку своей игры, поэтому, когда я нажимаю кнопку воспроизведения, сетка игры отображается автоматически.
Но я хочу, чтобы перед входом в игру было меню, поэтому я добавил холст с кнопкой, чтобы при нажатии кнопки происходило изменение.
Однако я немного растерялся, потому что, когда я нажимаю «Воспроизвести», появляются оба элемента, сетка и кнопка, что нормально, потому что я не настроил логику, но я не уверен, как это сделать. Я создал объект GameManager, как это было рекомендовано большинством руководств, и скрипт.
Вот скрипт моего игрового менеджера:
Код: Выделить всё
public class GameManager : MonoBehaviour
{
public static GameManager Instance;
public GameObject menuCanvas;
public GridManager gridManager;
public GameState State;
private void Awake()
{
Instance = this;
}
private void Start()
{
ChangeState(GameState.Menu);
}
public void ChangeState(GameState newState)
{
State = newState;
switch (State)
{
case GameState.Menu:
break;
case GameState.GameSearch:
break;
case GameState.Victory:
break;
case GameState.Lose:
break;
default:
throw new ArgumentOutOfRangeException (nameof(State), newState, null);
}
}
public void OnPlayNowClicked()
{
menuCanvas.SetActive(false); // this method is just for testing
}
}
public enum GameState
{
Menu = 0,
GameSearch = 1,
Victory = 2,
Lose = 3
}
Если я правильно понимаю, я должен связать свой Событие кнопки OnClick для моего метода ChangeState(), верно? По какой-то причине я не уверен, что не могу выбрать этот метод на панели кнопок единства. Во-вторых, как передать ему другой параметр GameState?
Подробнее здесь: https://stackoverflow.com/questions/783 ... -on-button
Мобильная версия