73 lines
1.4 KiB
C#
73 lines
1.4 KiB
C#
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<ChipData> LoadEvent;
|
|
|
|
public void Load()
|
|
{
|
|
LoadEvent?.Invoke(this);
|
|
}
|
|
} |