예제 #1
0
        // Update is called once per frame
        void Update()
        {
            if (_stackMenuList.Count > 0 && EventSystem.current.currentSelectedGameObject != null)
            {
                MenuCardParam menuCardParam = _stackMenuList[_stackMenuList.Count - 1];
                menuCardParam.childName = GetTargetNameWithConstruction(EventSystem.current.currentSelectedGameObject);
                _stackMenuList[_stackMenuList.Count - 1] = menuCardParam;
                ShowStackMenuList();
            }

            // キャンセルボタンが押された場合
            if (!_isPressedCancel && CurrentPlayerInput.currentActionMap["Cancel"].ReadValue <float>() != 0)
            {
                Back();
            }
            _isPressedCancel = CurrentPlayerInput.currentActionMap["Cancel"].ReadValue <float>() != 0;
        }
예제 #2
0
        /// <summary>
        /// 前の画面に戻る or 現在の Menu を閉じる
        /// </summary>
        public void Back()
        {
            _Close();
            int num = _stackMenuList.Count;

            if (num >= 2)
            {
                // Back to previous MenuCard
                MenuCardParam menuCardParam = _stackMenuList[num - 2];
                _stackMenuList.RemoveAt(num - 1);
                _Create(menuCardParam);

                // 遷移前の最後に選択していたUIに戻す
                // NOTE 重複した名前だと上手くいかないので注意
                if (menuCardParam.childName != "")
                {
                    _currentMenuCard.GetComponent <MenuCard>().SetFirstTargetFromName(menuCardParam.childName);
                }
            }
            else
            {
                _stackMenuList.RemoveAt(0);
            }
        }
예제 #3
0
        // -----------------------------
        // priate methods
        // -----------------------------

        void _Create(MenuCardParam menuCardParam)
        {
            _currentMenuCard = Instantiate(menuCardParam.targetObject);
        }