/// <summary> /// インタラクト時の処理 /// </summary> private void InteractHandler() { // インタラクト範囲内におり、ポーズ中でなければインタラクトを許可 if (!_isNear || PushPause.Instance.IsNowPausing) { return; } // 開いたとき if (Input.GetButtonDown("Interact") && // インタラクトボタン押下 _selfCanvasGroup.alpha.Equals(0)) // インベントリが開かれていない { // 冷蔵庫インベントリの描画をリセット _selfInvRenderer.ClearRender(); _selfCanvasGroup.alpha = 1; _selfCanvasGroup.interactable = true; _selfCanvasGroup.blocksRaycasts = true; // SE再生 SoundManager.Instance.PlaySe(SE.RifregeratorOpen); // 冷蔵庫インベントリをフォーカス _selfInvRenderer.SelectSlot(); // プレイヤーインベントリを無効化 _playerCanvasGroup.interactable = false; } // 閉じたとき else if (Input.GetButtonDown("Cancel") && // キャンセルボタン押下 _selfCanvasGroup.alpha.Equals(1)) // インベントリが開かれている { // 冷蔵庫インベントリの描画をリセット _selfInvRenderer.ClearRender(); // 冷蔵庫インベントリを無効化 _selfCanvasGroup.alpha = 0; _selfCanvasGroup.interactable = false; _selfCanvasGroup.blocksRaycasts = false; // 冷蔵庫インベントリのハイライトがあったら解除 _selfInvRenderer.UnhighlightSlotAt(_selfInvRenderer.LastSelectedIndex); // プレイヤーインベントリを有効化し、フォーカス _playerCanvasGroup.interactable = true; _playerInvRenderer.SelectSlot(); } }
/// <summary> /// プレイヤーインベントリスロットをクリックした際の動作 /// </summary> public void OnClickForPlayer() { // 交換モードなら if (!_invManager.IsSwapMode) { return; } _nearRefContainer = RefrigeratorManager.Instance.NearRefrigeratorContainer; var selfIndex = _playerInvRenderer.LastSelectedIndex; var refLastIndex = _refInvRenderer.LastSelectedIndex; // 交換先にアイテムを渡す _nearRefContainer.UpdateItem(_refInvRenderer.LastSelectedIndex, _playerContainer.GetItem(selfIndex), _playerContainer.GetStates(selfIndex)); // 選択スロットに交換先のアイテムを配置 _playerContainer.UpdateItem(selfIndex, _invManager.ItemToSwapFromRef, _invManager.ItemStatesToSwap); // フォーカスを冷蔵庫に戻す _playerCanvasGroup.interactable = false; _refCanvasGroup.interactable = true; _refInvRenderer.SelectSlot(); // 冷蔵庫スロットのハイライトを解除 _refInvRenderer.GetSlotAt(refLastIndex).GetComponent <Button>().enabled = true; _refInvRenderer.UnhighlightSlotAt(_refInvRenderer.LastSelectedIndex); // キャッシュアイテムクリア _invManager.ItemToSwapFromRef = null; _invManager.ItemStatesToSwap = null; }