Я недавно делал систему инвентаризации, но мне не удалось заставить UI отображаться с Input.GetKeyDown, как я хотел. Вот мой код:
using UnityEngine; public class Inventory : MonoBehaviour { public GameObject invUI; public GameObject soulFragmentPanel; private void Update() { if(Input.GetKeyDown(KeyCode.E)) { invUI.SetActive(true); soulFragmentPanel.SetActive(false); } if (Input.GetKeyUp(KeyCode.E)) { invUI.SetActive(false); soulFragmentPanel.SetActive(true); } if (invUI.activeSelf) { soulFragmentPanel.SetActive(false); } } }
Можете ли вы проверить в единстве? Вы отключаете тот объект, который содержит сценарий Inventory .
, вам нужно установить invUI и soulFragmentPanel на одном холсте и взять Inventory скрипт на этом холсте.
, чтобы ваш код работал правильно.