private void OnTriggerExit(Collider other) { if (!other.CompareTag("Player")) { return; } _isNear = false; RefrigeratorManager.Instance.currentNearObj = null; // 冷蔵庫が開いている時 if (_selfCanvasGroup.alpha.Equals(1)) { var selfIndex = _selfInvRenderer.LastSelectedIndex; // 閉じる _selfCanvasGroup.alpha = 0; _selfCanvasGroup.interactable = false; _selfInvRenderer.ClearRender(); // 交換モードだったときの表示をリセット _selfInvRenderer.GetSlotAt(selfIndex).GetComponent <Button>().enabled = true; _selfInvRenderer.UnhighlightSlotAt(selfIndex); // プレイヤーインベントリ有効化 // _playerInvRenderer.EnableAllSlot(); _playerCanvasGroup.interactable = true; _playerInvRenderer.SelectSlot(); } // アイテム交換モードだったら解除する if (!InventoryManager.Instance.IsSwapMode) { return; } InventoryManager.Instance.IsSwapMode = false; }
/// <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; }