2025-02-10 17:23:54 +08:00
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEngine.UI;
|
|
|
|
|
using XMLTool;
|
|
|
|
|
using TMPro;
|
|
|
|
|
|
|
|
|
|
namespace QFramework.Example
|
|
|
|
|
{
|
|
|
|
|
public class UIBody3DData : UIPanelData
|
|
|
|
|
{
|
2025-02-11 16:42:39 +08:00
|
|
|
public Body3D.Body body = new Body3D.Body();
|
2025-02-10 17:23:54 +08:00
|
|
|
}
|
|
|
|
|
public partial class UIBody3D : UIPanel
|
|
|
|
|
{
|
|
|
|
|
protected override void OnInit(IUIData uiData = null)
|
|
|
|
|
{
|
2025-02-13 11:02:16 +08:00
|
|
|
DragBtn.onValueChanged.AddListener(isOn =>
|
|
|
|
|
{
|
2025-02-13 17:21:18 +08:00
|
|
|
DragBtn.transform.Find("SubBtns").gameObject.SetActive(isOn);
|
2025-02-13 11:02:16 +08:00
|
|
|
Body3DController.Instance.allowDrag = isOn;
|
|
|
|
|
TypeEventSystem.Global.Send<OnBody3DDragChanged>();
|
|
|
|
|
});
|
|
|
|
|
DragBack.onClick.AddListener(() =>
|
|
|
|
|
{
|
|
|
|
|
DragBtn.isOn = false;
|
2025-02-13 17:21:18 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
ActiveBtn.onValueChanged.AddListener(isOn =>
|
|
|
|
|
{
|
|
|
|
|
ActiveBtn.transform.Find("SubBtns").gameObject.SetActive(isOn);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
ActiveBack.onClick.AddListener(() =>
|
|
|
|
|
{
|
|
|
|
|
|
2025-02-13 11:02:16 +08:00
|
|
|
});
|
2025-02-10 17:23:54 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnOpen(IUIData uiData = null)
|
|
|
|
|
{
|
2025-02-11 16:42:39 +08:00
|
|
|
mData = uiData as UIBody3DData ?? new UIBody3DData();
|
2025-02-10 17:23:54 +08:00
|
|
|
BodyContent.RemoveAllChildren();
|
2025-02-13 17:21:18 +08:00
|
|
|
GameObject root = Utility.FindObj(mData.body.Path);
|
|
|
|
|
root.SetActive(true);
|
2025-02-12 17:36:00 +08:00
|
|
|
foreach (var bodyData in mData.body.subBody)
|
2025-02-10 17:23:54 +08:00
|
|
|
{
|
2025-02-12 17:36:00 +08:00
|
|
|
var body = bodyData.Value;
|
2025-02-10 17:23:54 +08:00
|
|
|
var bodyItem = GameObject.Instantiate(BodyItem.gameObject, BodyContent);
|
2025-02-11 16:42:39 +08:00
|
|
|
bodyItem.transform.Find("Label").GetComponent<TextMeshProUGUI>().text = body.Name;
|
2025-02-10 17:23:54 +08:00
|
|
|
var bodyToggle = bodyItem.GetComponent<Toggle>();
|
2025-02-11 16:42:39 +08:00
|
|
|
bodyToggle.isOn = body.isShow;
|
2025-02-12 17:36:00 +08:00
|
|
|
GameObject obj = Utility.FindObj(body.Path);
|
|
|
|
|
obj.SetActive(body.isShow);
|
2025-02-10 17:23:54 +08:00
|
|
|
bodyToggle.onValueChanged.AddListener(isOn =>
|
|
|
|
|
{
|
2025-02-12 17:36:00 +08:00
|
|
|
obj.SetActive(isOn);
|
2025-02-10 17:23:54 +08:00
|
|
|
});
|
|
|
|
|
}
|
2025-02-13 17:21:18 +08:00
|
|
|
FreeCameraController.instance.gameObject.SetActive(false);
|
|
|
|
|
Show3DCamera.instance.gameObject.SetActive(true);
|
|
|
|
|
Show3DCamera.instance.Set(root.transform, distance: 5, isRenderTexture: false);
|
|
|
|
|
|
2025-02-13 11:02:16 +08:00
|
|
|
|
2025-02-10 17:23:54 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnShow()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnHide()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnClose()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|