using System.Collections; using System.Collections.Generic; using UnityEngine; using AibisDream.Framework; using AibisDream; using System; public class UFModule : MonoBehaviour { private GameObject _UFcover; private GameObject _UFModule; private UFData _ufData; private void Awake() { // 将数据注册到数据容器内 GameLoopManager.FixDataContainer.Register(_ufData); // 添加加载逻辑 _ufData.LoadEvent += LoadData; _UFModule = transform.Find("Module Pic").gameObject; _UFcover = transform.Find("Cover").gameObject; } // Start is called before the first frame update public void RemoveUFCover() { if (_UFcover.activeInHierarchy) { _UFcover.SetActive(false); } _ufData.isUFCoverRemoved=true; } public void RemoveUFModule() { if (_UFModule.activeInHierarchy) { _UFModule.SetActive(false); } _ufData.isUFRemoved=true; } public void InstallUFCover() { if (!_UFcover.activeInHierarchy) { _UFcover.SetActive(true); } _ufData.isUFCoverRemoved=false; } public void InstallUFModule() { if (!_UFModule.activeInHierarchy) { _UFModule.SetActive(true); } _ufData.isUFRemoved=false; } public void UFinit() { _UFModule.SetActive(!_ufData.isUFRemoved); _UFcover.SetActive(!_ufData.isUFCoverRemoved); } private void LoadData(UFData ufData) { UFinit(); // 读取存档文件时触发,将当前系统恢复为目标状态 } void Start() { UFinit(); } } public class UFData : IData { public bool isUFCoverRemoved = false; public bool isUFRemoved = false; public event Action LoadEvent; public void Load() { LoadEvent?.Invoke(this); } }