Unity - Jak zablokować poszczególne UIButton po otworzeniu panelu?

Unity - Jak zablokować poszczególne UIButton po otworzeniu panelu?
SU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 91
0

Zrobiłem prosty program w Unity, który po kliknięciu na UIButton otwiera Panel, jednak chciałbym aby ten panel zamykał się tylko przez przycisk "X", a reszta button'ów została zablokowana. Poniżej podaję kod, który zastosowałem. Potrzebuję jakiejś funkcji/metody, która by blokowała nie chciane przyciski do czasu wyłączenia panelu.

PanelOpener.cs

Kopiuj
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PanelOpener : MonoBehaviour
{

public GameObject Panel;

public void OpenPanel()
{
	if(Panel != null)
	{
		bool isActive = Panel.activeSelf;
		Panel.SetActive(!isActive);
	}
	
}
}

c7
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 89
0

Unity ma do tego flagę interactable na komponentach.

Wystarczy, że ustawisz ją na false.

#edit:

Jeśli chcesz zablokować klikanie poza popup/panel, to możesz też dać jakiś przeźroczysty obiekt, który będzie łapał raycasty z UI (i w ten sposób blokował input).

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.