using System.Collections; using System.Collections.Generic; using UnityEngine; namespace MuHua { /// /// 数据可视化 /// public class ModuleVisual : ModuleSingle> where T : ModuleData { /// 生成空间 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; } } }