Я пытаюсь написать код, в котором игрок реагирует на OnTriggerEvent2D на сундуке, а затем открывает инвентарь сундука. У меня так, что сундуки случайным образом генерируются на карте, а инвентарь находится на сцене.
Я попытался переместить инвентарь сундука на сцену и на сборный сундук.
Я добавил интерактивный код в префаб сундука и поместил инвентарь сундука в качестве игрового объекта, когда в префабе сундука был инвентарь сундука. Я не могу сделать это, когда пользовательский интерфейс инвентаря находится на сцене.
using UnityEngine;
using UnityEngine.SceneManagement;
public class ChestInteractable : MonoBehaviour
{
[SerializeField] KeyCode interactableKey = KeyCode.E; //allow player to choose key
public GameObject chestInventoryUI;
private void OnTriggerEnter2D(Collider2D collision) //if player collides with chest (I am unsure if OnCollisionEnter2D is better, I am only a beginner)
{
if(Input.GetKeyDown(interactableKey)) {
chestInventoryUI.SetActive(true); //open up chest inventory
Time.timeScale = 0f; //time is stopped
}
if(Input.GetKeyUp(interactableKey))
{
chestInventoryUI.SetActive(false); //closes chest inventory
Time.timeScale = 1f; //time resumes
}
}
}
Я ожидал, что пользовательский интерфейс сундука будет виден, и игра будет остановлена, но ничего не произошло.