61 lines
1.7 KiB
C#
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 });
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|