2025-10-28 16:50:36 +08:00

201 lines
6.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using Unity.XR.PXR;
using UnityEngine;
using UnityEngine.AI;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using YiLiao.JingLuoXueWei;
using ZXKFramework;
public class SouSuoPanel : UIBase
{
public override string GroupName => typeof(SouSuoPanel).Name;
public override string Name => typeof(SouSuoPanel).Name;
/// <summary>
/// 当前显示的搜索按钮队列
/// </summary>
Queue<GameObject> souSuoBtn_Que;
Button exit_Btn;
InputField souSuo_InputField;
List<JingLuoSmall> allJingLuoSmall;
List<Button> allSouSuoBtn;
public override void Init(IUIManager uictrl)
{
base.Init(uictrl);
souSuoBtn_Que = new Queue<GameObject>();
exit_Btn = transform.FindFirst<Button>("Exit_Btn");
exit_Btn.onClick.AddListener(() =>
{
uiManager.CloseUI<SouSuoPanel>();
});
allJingLuoSmall = MVC.GetModel<GameModel>().excelData.allJingLuoSmall;
souSuo_InputField = transform.FindFirst<InputField>("souSuo_Input");
souSuo_InputField.onValueChanged.AddListener(InputValueChanged);
souSuo_InputField.onSubmit.AddListener(InputSubmit);
}
private void InputSubmit(string arg0)
{
if (souSuoBtn_Que.Count > 0)
{
int num = souSuoBtn_Que.Count;
for (int i = 0; i < num; i++)
{
GameObject g = souSuoBtn_Que.Dequeue();
g.SetActive(false);
GameObject_Pool.Instance.PutInGame("souSuoBtn", g);
}
}
this.Warn($"当前输入的文字是:{arg0}");
if (string.IsNullOrEmpty(arg0)) return;
for (int i = 0; i < allJingLuoSmall.Count; i++)
{
if (allJingLuoSmall[i].XueWeiName_NoPinYin.Contains(arg0))
{
int id = i;
Debug.Log($"应该创建搜索按钮:{allJingLuoSmall[i].XueWeiName_NoPinYin}");
souSuo_InputField.text = $"{arg0}";
//GameObject go = Resources.Load<GameObject>("souSuoBtn");
//GameObject obj = GameObject.Instantiate(go, transform.FindFirst("souSuoBtnContent").transform);
//obj.GetComponentInChildren<Text>().text = allJingLuoSmall[i].XueWeiName_NoPinYin;
//Button btn = obj.GetComponent<Button>();
//allSouSuoBtn.Add(btn);
GameObject go = GameObject_Pool.Instance.TakeOutGame("souSuoBtn", transform.FindFirst("souSuoBtnContent").transform);
go.SetActive(true);
go.GetComponent<BtnImage>().OnExitBtn();
go.GetComponentInChildren<TMP_Text>().text = allJingLuoSmall[i].XueWeiName_NoPinYin;
souSuoBtn_Que.Enqueue(go);
go.GetComponent<Button>().onClick.AddListener(() =>
{
GameObject[] arr = souSuoBtn_Que.ToArray();
for (int i = 0; i < arr.Length; i++)
{
arr[i].GetComponent<BtnImage>().OnExitBtn();
}
go.GetComponent<BtnImage>().OnEnterBtn();
uiManager.GetUI<LeftBigBtnPanel>().EnterBigBtnCallBack(allJingLuoSmall[id].name);
uiManager.GetUI<LeftBigBtnPanel>().EnterSmallBtnCallBack(allJingLuoSmall[id].XueWeiName_NoPinYin);
});
}
}
//LayoutRebuilder.ForceRebuildLayoutImmediate(transform.FindFirst("souSuoBtnContent").GetComponent<RectTransform>());
}
public override void Show()
{
base.Show();
//InputSubmit("风");
#region
//InputSubmit("俞");
//Game.Instance.IEnumeratorManager.Run(7.0f, () =>
//{
// InputSubmit("阴");
//});
//Game.Instance.IEnumeratorManager.Run(15.0f, () =>
//{
// InputSubmit("俞");
//});
//Game.Instance.IEnumeratorManager.Run(22.0f, () =>
//{
// InputSubmit("乳");
//});
//Game.Instance.IEnumeratorManager.Run(30.0f, () =>
//{
// InputSubmit("俞");
//});
//Game.Instance.IEnumeratorManager.Run(37.0f, () =>
//{
// InputSubmit("阳");
//});
//Game.Instance.IEnumeratorManager.Run(45.0f, () =>
//{
// InputSubmit("俞");
//});
//Game.Instance.IEnumeratorManager.Run(52.0f, () =>
//{
// InputSubmit("气");
//});
//Game.Instance.IEnumeratorManager.Run(60.0f, () =>
//{
// InputSubmit("俞");
//});
//Game.Instance.IEnumeratorManager.Run(66.0f, () =>
//{
// InputSubmit("三");
//});
//Game.Instance.IEnumeratorManager.Run(72.0f, () =>
//{
// InputSubmit("太");
//});
//Game.Instance.IEnumeratorManager.Run(78.0f, () =>
//{
// InputSubmit("渊");
//});
//Game.Instance.IEnumeratorManager.Run(85.0f, () =>
//{
// InputSubmit("俞");
//});
#endregion
}
private void InputValueChanged(string arg0)
{
transform.FindFirst("Placeholder").SetActive(false);
}
//void Update()
//{
// // 获取EventSystem实例场景中需先添加EventSystem组件
// EventSystem eventSystem = EventSystem.current;
// if (eventSystem == null)
// {
// souSuo_InputField.text = "场景中未找到EventSystem请先添加";
// return;
// }
// // 获取当前聚焦的游戏对象
// GameObject focusedObj = eventSystem.currentSelectedGameObject;
// if (focusedObj == null)
// {
// souSuo_InputField.text = "当前无UI元素聚焦";
// return;
// }
// // 判断聚焦对象的类型
// InputField inputField = focusedObj.GetComponent<InputField>();
// if (inputField != null)
// {
// // 若聚焦对象是InputField可进一步判断是否真的处于输入焦点
// if (inputField.isFocused)
// {
// //Debug.Log($"焦点:{inputField.name}");
// souSuo_InputField.text = $"焦点:{inputField.name}";
// }
// return;
// }
// Button button = focusedObj.GetComponent<Button>();
// if (button != null)
// {
// //Debug.Log($"焦点:{button.name}");
// souSuo_InputField.text = $"焦点:{button.name}";
// return;
// }
// // 其他可交互组件如Slider、Toggle等可类似判断
// Selectable selectable = focusedObj.GetComponent<Selectable>();
// if (selectable != null)
// {
// //Debug.Log($"焦点:{selectable.name}");
// souSuo_InputField.text = $"焦点:{selectable.name}";
// }
//}
}