refactor interact system

interact only after PopupItemMenu button clicked
This commit is contained in:
Vova
2023-11-16 16:11:39 +02:00
parent c2bb35a46d
commit 1774ab5b18
12 changed files with 100 additions and 61 deletions
+20 -1
View File
@@ -1,3 +1,5 @@
using System;
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
@@ -6,10 +8,27 @@ public class PopupItemMenu : MonoBehaviour
[SerializeField]
private Button _popupMenuItemButtonPrefab;
public void ShowButtons()
public void ShowButtons(Action menuButtonClick)
{
var button=Instantiate(_popupMenuItemButtonPrefab) as Button;
button.transform.SetParent(transform,false);
button.transform.localPosition = new Vector3(0, 100f, 0);
button.onClick.AddListener(() =>
{
menuButtonClick?.Invoke();
Hide();
CloseDialog();
});
}
private void CloseDialog()
{
UIManager.Instance.Unfreeze();
Destroy(this);
}
private void Hide()
{
gameObject.SetActive(false);
}
}
+2 -2
View File
@@ -40,12 +40,12 @@ public class UIManager : MonoBehaviour
jobSelector.ShowJobSelectionDialog(title, onCancel, onConfirm);
}
public void ShowItemsMenu()
public void ShowItemsMenu(Action itemsMenuCallback)
{
var popupMenu = Instantiate(_itemPopupMenuPrefab) as PopupItemMenu;
popupMenu.transform.transform.SetParent(transform, false);
popupMenu.transform.position = Input.mousePosition;
popupMenu.ShowButtons();
popupMenu.ShowButtons(itemsMenuCallback);
}
public void Freeze()