VirtualFramework/Assets/Scripts/UI/UIBody3DInfo.cs

179 lines
5.4 KiB
C#
Raw Normal View History

2025-02-12 17:36:00 +08:00
using UnityEngine;
using UnityEngine.UI;
using QFramework;
using XMLTool;
using DG.Tweening;
using TMPro;
2025-02-17 15:14:40 +08:00
using System;
2025-02-12 17:36:00 +08:00
namespace QFramework.Example
{
public class UIBody3DInfoData : UIPanelData
2025-02-12 17:36:00 +08:00
{
public Body3D.Body body;
}
public partial class UIBody3DInfo : UIPanel
2025-02-12 17:36:00 +08:00
{
2025-02-13 11:02:16 +08:00
GameObject obj;
2025-02-17 15:14:40 +08:00
float bgH;
2025-02-12 17:36:00 +08:00
protected override void OnInit(IUIData uiData = null)
{
2025-03-11 10:33:07 +08:00
TypeEventSystem.Global.Register<OnModuleQuit>(OnModuleQuithandler).UnRegisterWhenGameObjectDestroyed(this);
2025-02-17 15:14:40 +08:00
bgH = Content.sizeDelta.y;
2025-02-12 17:36:00 +08:00
Group.onValueChanged.AddListener(isOn =>
{
TypeEventSystem.Global.Send<OnBody3DGroupTypeChanged>(new OnBody3DGroupTypeChanged() { isGroup = isOn });
if (isOn)
{
Group.transform.Find("Label").GetComponent<TextMeshProUGUI>().text = "<22><>ѡ";
}
else
{
Group.transform.Find("Label").GetComponent<TextMeshProUGUI>().text = "<22><>ѡ";
}
});
Active.onValueChanged.AddListener(isOn =>
{
obj.SetActive(isOn);
if (isOn)
{
Active.transform.Find("Label").GetComponent<TextMeshProUGUI>().text = "<22><><EFBFBD><EFBFBD>";
}
else
{
Active.transform.Find("Label").GetComponent<TextMeshProUGUI>().text = "<22><>ʾ";
}
});
Transparent.onValueChanged.AddListener(isOn =>
{
if (isOn)
{
Transparent.transform.Find("Label").GetComponent<TextMeshProUGUI>().text = <><CAB5>";
}
else
{
Transparent.transform.Find("Label").GetComponent<TextMeshProUGUI>().text = <><CDB8>";
}
Utility.SetSurfaceType(obj.GetComponent<MeshRenderer>().material, isOn);
});
Single.onClick.AddListener(() =>
{
2025-02-13 11:02:16 +08:00
Body3DController.Instance.Active(false);
2025-02-21 11:49:10 +08:00
BackBtn.gameObject.SetActive(true);
2025-02-13 11:02:16 +08:00
Active.gameObject.SetActive(false);
Single.gameObject.SetActive(false);
Transparent.gameObject.SetActive(false);
TransparentOther.gameObject.SetActive(false);
2025-02-12 17:36:00 +08:00
});
TransparentOther.onValueChanged.AddListener(isOn =>
{
if (isOn)
{
TransparentOther.transform.Find("Label").GetComponent<TextMeshProUGUI>().text = <><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
}
else
{
TransparentOther.transform.Find("Label").GetComponent<TextMeshProUGUI>().text = <><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
}
Body3DController.Instance.Transparent(obj, isOn, true);
});
2025-02-13 11:02:16 +08:00
2025-02-21 11:49:10 +08:00
BackBtn.onClick.AddListener(() =>
2025-02-13 11:02:16 +08:00
{
Body3DController.Instance.Active(true);
2025-02-21 11:49:10 +08:00
BackBtn.gameObject.SetActive(false);
2025-02-13 11:02:16 +08:00
Active.gameObject.SetActive(true);
Single.gameObject.SetActive(true);
Transparent.gameObject.SetActive(true);
TransparentOther.gameObject.SetActive(true);
});
2025-02-17 15:14:40 +08:00
ShowTip.onValueChanged.AddListener(isOn =>
{
if (isOn)
{
DOTween.To(() => Content.sizeDelta.y, (v) =>
{
Content.sizeDelta = new Vector2(Content.sizeDelta.x, v);
}, bgH + Center.sizeDelta.y, 0.2f);
}
else
{
DOTween.To(() => Content.sizeDelta.y, (v) =>
{
Content.sizeDelta = new Vector2(Content.sizeDelta.x, v);
}, bgH, 0.2f);
}
});
AudioBtn.onValueChanged.AddListener(isOn =>
{
AudioSpeed.gameObject.SetActive(isOn);
});
AudioSpeed.onValueChanged.AddListener((isOn) =>
{
});
2025-02-13 11:02:16 +08:00
}
2025-03-11 10:33:07 +08:00
private void OnModuleQuithandler(OnModuleQuit quit)
{
Hide();
}
2025-02-17 15:14:40 +08:00
public void RefreshTipPath()
{
ListContent.RemoveAllChildren();
ListItemFacotry(mData.body);
}
public void Refresh()
2025-02-13 11:02:16 +08:00
{
PartName.text = mData.body.Name;
obj = Utility.FindObj(mData.body.Path);
2025-02-17 15:14:40 +08:00
Des.text = mData.body.Tip;
RefreshTipPath();
}
2025-02-13 11:02:16 +08:00
2025-02-17 15:14:40 +08:00
public void ListItemFacotry(Body3D.Body body)
{
GameObject obj = GameObject.Instantiate(ListItem.gameObject, ListContent);
2025-02-18 13:30:35 +08:00
obj.transform.Find("Label").GetComponent<TextMeshProUGUI>().text = body.Name + ">";
2025-02-17 15:14:40 +08:00
obj.transform.SetAsFirstSibling();
if (body.parent != null)
{
ListItemFacotry(body.parent);
}
2025-02-12 17:36:00 +08:00
}
2025-02-17 15:14:40 +08:00
protected override void OnOpen(IUIData uiData = null)
{
mData = uiData as UIBody3DInfoData ?? new UIBody3DInfoData();
Refresh();
}
2025-02-12 17:36:00 +08:00
protected override void OnShow()
{
}
protected override void OnHide()
{
}
protected override void OnClose()
{
}
}
}