VirtualFramework/Assets/Scripts/Item/Body3DOjbItem.cs
2025-02-12 17:36:00 +08:00

61 lines
1.7 KiB
C#

using QFramework;
using QFramework.Example;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XMLTool;
public class Body3DOjbItem : MonoBehaviour
{
Body3D.Body body;
private void Awake()
{
TypeEventSystem.Global.Register<OnBody3DDrag>(OnBody3DDragHandler);
}
private void OnBody3DDragHandler(OnBody3DDrag drag)
{
}
public void Init(Body3D.Body body)
{
this.body = body;
if (body.subBody == null || body.subBody.Count == 0)
{
if (body.toggle != null)
{
var objToggle = gameObject.GetOrAddComponent<ObjectToggle>();
ObjectColorToggle colorToggle = null;
if (body.toggle.color != null)
{
colorToggle = gameObject.GetOrAddComponent<ObjectColorToggle>();
colorToggle.Init(Utility.ToColor(body.toggle.color.isOn), Utility.ToColor(body.toggle.color.isOff));
}
objToggle.OnValueChanged.AddListener(isOn =>
{
colorToggle?.SetColor(isOn);
var drag = gameObject.GetOrAddComponent<ObjDrag>();
drag.isOn = isOn;
if (isOn)
{
UI3DBodyInfoData data = new UI3DBodyInfoData();
data.body = body;
UIKit.OpenPanelAsync<UI3DBodyInfo>(UILevel.PopUI, data).ToAction().Start(this);
}
TypeEventSystem.Global.Send<OnBody3DSelected>(new OnBody3DSelected() { isOn = isOn, obj = gameObject });
});
}
}
}
}