Exemplo n.º 1
0
    public void Init()
    {
        var mainMenuViewInstance = Instantiate(mainMenuView.gameObject).GetComponent <MenuView>();

        disposables = new CompositeDisposable();

        mainMenuViewInstance.playButton.OnClickAsObservable().Subscribe(_ =>
        {
            SceneManager.LoadScene("GameScene");
            disposables.Dispose();
        }
                                                                        ).AddTo(disposables);

        choisedLevelInd.AsObservable().Subscribe(x =>
        {
            mainMenuViewInstance.preview.sprite      = levels[x].GetBehavior().preview;
            mainMenuViewInstance.levelStateText.text = levels[x].GetModel().state.ToString();
        }).AddTo(disposables);

        Observable.EveryUpdate().Where(_ => (levels.Count > choisedLevelInd.Value + 1) && (Input.GetKeyDown(KeyCode.D) || Input.GetKeyDown(KeyCode.RightArrow))).Subscribe(_ =>
        {
            choisedLevelInd.Value++;
        }).AddTo(disposables);

        Observable.EveryUpdate().Where(_ => (choisedLevelInd.Value - 1 > -1) && (Input.GetKeyDown(KeyCode.A) || Input.GetKeyDown(KeyCode.LeftArrow))).Subscribe(_ =>
        {
            choisedLevelInd.Value--;
        }).AddTo(disposables);
    }
Exemplo n.º 2
0
    /// <summary>
    /// Функция, возвращающая подписанные "цели" для отображения.
    /// Каждый дочерний класс может имплементировать по своему усмотрению(в зависимости от поставленных целей, конечно же).
    /// Базовая цель определена как "Пролететь ... ед. пути"
    /// </summary>
    /// <returns>Список ГеймОбъектов-целей</returns>
    public virtual List <GameObject> GetApplyingableObjectives(GameObject objectivePrefab)
    {
        List <GameObject> objects = new List <GameObject>();

        var item = Instantiate(objectivePrefab) as GameObject;

        way.AsObservable().Subscribe(x => item.GetComponentInChildren <Text>().text = "Пройдено " + x + " из " + needToGo).AddTo(gameObject);
        level_m.isPassed = way.AsObservable().Select(x => x >= needToGo).ToReactiveProperty();
        level_m.isPassed.Where(x => x == true).Subscribe(_ =>
        {
            level_m.state = LevelState.Passed;
            isEnabled     = false;
            SceneManager.LoadScene("MainScene");
        });

        objects.Add(item);

        return(objects);
    }