using System.Collections; using System.Collections.Generic; using UnityEngine; using AibisDream.Framework; using AibisDream; using System; public class ChipModule : MonoBehaviour { private GameObject _ChipModule; private ChipData _ChipData; private void Awake() { // 将数据注册到数据容器内 GameLoopManager.FixDataContainer.Register(_ChipData); // 添加加载逻辑 _ChipData.LoadEvent += LoadData; _ChipModule = transform.Find("Chip").gameObject; } // Start is called before the first frame update public void RemoveChipModule() { if (_ChipModule.activeInHierarchy) { _ChipModule.SetActive(false); } _ChipData.isChipRemoved=true; } public void InstallChipModule() { if (!_ChipModule.activeInHierarchy) { _ChipModule.SetActive(true); } _ChipData.isChipRemoved=false; } public void Chipinit() { _ChipModule.SetActive(!_ChipData.isChipRemoved); } private void LoadData(ChipData ufData) { Chipinit(); // 读取存档文件时触发,将当前系统恢复为目标状态 } void Start() { Chipinit(); } } public class ChipData : IData { public bool isChipRemoved = false; public event Action LoadEvent; public void Load() { LoadEvent?.Invoke(this); } }