@Wadim_wadim2000

Unity 2D C# — как открывать панель только при входе в коллайдер по кнопке?

Я посмотрел урок на YouTube, как сделать инвентарь в unity. Там мне все подходит, но вот только в том проблема, что там "хранилище" (сундук, в который можно класть предметы из инвентаря) "открывается" с помощью raycast. И урок по 3д игре, а у меня 2д. Мне вот именно надо чтобы он мог открываться только при входе в коллайдер игрока. Заранее спасибо, ниже прикреплю код:
void Update()
    {
        Storage storage = storageInstance();
        if (storage)
        {
            if (Input.GetKeyDown(Inventory.instanceInventory.openKey))
            {
                Inventory.instanceInventory.storagePanel.SetActive(true);

                if(Inventory.instanceInventory.storageName)
                    Inventory.instanceInventory.storageName.text = storage.storageName;

                Inventory.instanceInventory.inventoryPanel.SetActive(true);
                DisplayItems();
            }

            if (Input.GetKeyDown(Inventory.instanceInventory.closeKey))
            {
                Inventory.instanceInventory.inventoryPanel.SetActive(false);
                Inventory.instanceInventory.storagePanel.SetActive(false);
            }
        }

    }

здесь как бы открывается панель хранилища с ячейками по нажатию на кнопку.
public static Storage storageInstance()
    {
        Ray ray = Camera.main.ScreenPointToRay(new Vector2(Screen.width / 2, Screen.height / 2));
        RaycastHit hit;
        if (Physics.Raycast(ray, out hit, Inventory.instanceInventory.openDistance))
        {
            if (hit.collider.GetComponent<Storage>())
                return hit.collider.GetComponent<Storage>();
        }
        return null;
    }

а здесь проверяется , не слишком ли далеко от игрока сундук, и если нет, то его можно открыть.
Вот как сделать чтобы вместо raycast его можно было бы открывать при входе в коллайдер?
  • Вопрос задан
  • 239 просмотров
Решения вопроса 1
DanielMcRon
@DanielMcRon
C# && Unity
Если надо чтобы от касания открывался то OnCollisionEnter2D. Если от входа в зону сундука, то можно поставить 2 колайдер на суднук, поставить галочку на IsTrigger и обработать это методом OnTriggerEnter2D, а там просто записывать в ту переменную объект. В Update проверяйте не равна ли ссылка null
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
16 апр. 2024, в 14:23
7000 руб./за проект
16 апр. 2024, в 14:20
500 руб./за проект
16 апр. 2024, в 14:03
5000 руб./за проект