// 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; }
/// <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); } }
// ----------------------------- // priate methods // ----------------------------- void _Create(MenuCardParam menuCardParam) { _currentMenuCard = Instantiate(menuCardParam.targetObject); }