using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace MuHua {
///
/// 数据可视化
///
public class DataVisual : SingleBehaviour> where T : Data {
/// 生成空间
public Transform space;
/// 数据预制件
public Transform prefab;
/// 替换旧的
protected override void Awake() => Replace();
/// 更新可视化内容
public virtual void UpdateVisual(T data) {
Create(ref data.visual, prefab, space);
data.visual.UpdateVisual(data);
}
/// 释放可视化内容
public virtual void ReleaseVisual(T data) {
if (data.visual != null) { Destroy(data.visual.gameObject); }
data.visual = null;
}
/// 创建可视化内容
public static void Create(ref Type value, Transform original, Transform parent) {
if (value != null) { return; }
Transform temp = CreateTransform(original, parent);
value = temp.GetComponent();
}
/// 创建Transform
public static Transform CreateTransform(Transform original, Transform parent) {
Transform temp = Transform.Instantiate(original, parent);
temp.gameObject.SetActive(true);
return temp;
}
}
}