using System; using System.Threading.Tasks; using Bansonic; using TMPro; using UnityEngine; using UnityEngine.UI; public class roomAsk : MonoBehaviour { [Header("UI Elements")] [SerializeField] private Button createRoomButton; [SerializeField] private TMP_InputField roomCode_inputField; [SerializeField] private Button enterRoomButton; [SerializeField] private Button quitchoiceButton; private Func _onCreate; private Func _onJoin; private void Awake() { EnsurePopupTween(); } public void Bind(Func onCreate, Func onJoin) { EnsurePopupTween(); _onCreate = onCreate; _onJoin = onJoin; TryAutoBindQuitButton(); if (createRoomButton != null) { createRoomButton.onClick.RemoveListener(HandleCreateClicked); createRoomButton.onClick.AddListener(HandleCreateClicked); } if (enterRoomButton != null) { enterRoomButton.onClick.RemoveListener(HandleJoinClicked); enterRoomButton.onClick.AddListener(HandleJoinClicked); } if (quitchoiceButton != null) { quitchoiceButton.onClick.RemoveListener(HandleQuitChoiceClicked); quitchoiceButton.onClick.AddListener(HandleQuitChoiceClicked); } } private void OnDestroy() { if (createRoomButton != null) { createRoomButton.onClick.RemoveListener(HandleCreateClicked); } if (enterRoomButton != null) { enterRoomButton.onClick.RemoveListener(HandleJoinClicked); } if (quitchoiceButton != null) { quitchoiceButton.onClick.RemoveListener(HandleQuitChoiceClicked); } } private void TryAutoBindQuitButton() { if (quitchoiceButton != null) { return; } Button[] buttons = GetComponentsInChildren