using UnityEngine; using UnityEngine.UI; using XMLTool; using TMPro; namespace QFramework.Example { public class UIBody3DData : UIPanelData { public Body3D.Body body = new Body3D.Body(); } public partial class UIBody3D : UIPanel { protected override void OnInit(IUIData uiData = null) { DragBtn.onValueChanged.AddListener(isOn => { DragBtn.transform.Find("SubBtns").gameObject.SetActive(isOn); Body3DController.Instance.allowDrag = isOn; TypeEventSystem.Global.Send(); }); DragBack.onClick.AddListener(() => { DragBtn.isOn = false; }); ActiveBtn.onValueChanged.AddListener(isOn => { ActiveBtn.transform.Find("SubBtns").gameObject.SetActive(isOn); }); ActiveBack.onClick.AddListener(() => { }); } protected override void OnOpen(IUIData uiData = null) { mData = uiData as UIBody3DData ?? new UIBody3DData(); BodyContent.RemoveAllChildren(); GameObject root = Utility.FindObj(mData.body.Path); root.SetActive(true); foreach (var bodyData in mData.body.subBody) { var body = bodyData.Value; var bodyItem = GameObject.Instantiate(BodyItem.gameObject, BodyContent); bodyItem.transform.Find("Label").GetComponent().text = body.Name; var bodyToggle = bodyItem.GetComponent(); bodyToggle.isOn = body.isShow; GameObject obj = Utility.FindObj(body.Path); obj.SetActive(body.isShow); bodyToggle.onValueChanged.AddListener(isOn => { obj.SetActive(isOn); }); } FreeCameraController.instance.gameObject.SetActive(false); Show3DCamera.instance.gameObject.SetActive(true); Show3DCamera.instance.Set(root.transform, distance: 5, isRenderTexture: false); } protected override void OnShow() { } protected override void OnHide() { } protected override void OnClose() { } } }