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=new (); private void Awake() { // 将数据注册到数据容器内 StorageSystem.Instance.RegisterData(_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 IEnumerator Load() { LoadEvent?.Invoke(this); yield break; } }