EditorTool3D/Assets/ZXL/Scripts/UI/Logic/ConctrolUILogic.cs

80 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine.UI;
using UnityEngine;
using UnityEngine.EventSystems;
using ZXL.Scripts.UI;
namespace ZXL
{
public enum ConctrolType
{
,
,
,
,
}
public class ConctrolUILogic : UIBase, IPointerEnterHandler, IPointerExitHandler
{
public bool isEnter = false;
public List<ConctrolItem> List = new List<ConctrolItem>();
public Button btnItem;
void Awake()
{
btnItem = transform.FindChildDeep<Button>("btnItem");
btnItem.gameObject.SetActive(false);
Gen();
}
private void Start()
{
ZMouse.Instance.MouseUp1 += MouseUp;
ZMouse.Instance.MouseDown0 += MouseCancel;
ZMouse.Instance.MouseDown1 += MouseCancel;
}
private void MouseCancel(object obj)
{
Close();
}
private void MouseUp(object arg1, object arg2)
{
if (isEnter)
{
Open();
}
}
void Gen()
{
var strings = Enum.GetNames(typeof(ConctrolType));
foreach (var se in strings)
{
var go = GameObject.Instantiate(btnItem.gameObject, btnItem.transform.parent);
go.SetActive(true);
var item = go.AddComponent<ConctrolItem>();
item.SetConctrol(Enum.Parse<ConctrolType>(se),OnClickConctrol);
List.Add(item);
}
}
private void OnClickConctrol(ConctrolType obj)
{
Debug.Log(obj);
}
public void OnPointerEnter(PointerEventData eventData)
{
isEnter = true;
}
public void OnPointerExit(PointerEventData eventData)
{
isEnter = false;
}
}
}