125 lines
2.7 KiB
C#
125 lines
2.7 KiB
C#
using UnityEngine;
|
|
using AibisDream.Framework;
|
|
using AibisDream;
|
|
using System;
|
|
using AibisDream.FixSystem;
|
|
|
|
public class UFModule : MonoBehaviour
|
|
{
|
|
private GameObject _ufCover;
|
|
private GameObject _ufModule;
|
|
|
|
private GameObject _ufSocket;
|
|
|
|
private GameObject _ufColor;
|
|
private UFData _ufData=new ();
|
|
|
|
private void Awake()
|
|
{
|
|
// 将数据注册到数据容器内
|
|
GameLoopManager.FixDataContainer.Register(_ufData);
|
|
// 添加加载逻辑
|
|
_ufData.LoadEvent += LoadData;
|
|
_ufModule = transform.Find("Module Pic").gameObject;
|
|
_ufSocket = transform.Find("Socket").gameObject;
|
|
_ufCover = _ufModule.transform.Find("Cover").gameObject;
|
|
_ufColor=_ufModule.transform.Find("Color").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);
|
|
_ufSocket.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);
|
|
_ufSocket.SetActive(true);
|
|
}
|
|
|
|
_ufData.isUFRemoved = false;
|
|
}
|
|
public void InstallUFColor()
|
|
{
|
|
if (!_ufColor.activeInHierarchy)
|
|
{
|
|
_ufColor.SetActive(true);
|
|
}
|
|
|
|
_ufData.isColorRemoved = false;
|
|
}
|
|
public void RemoveUFColor()
|
|
{
|
|
if (_ufColor.activeInHierarchy)
|
|
{
|
|
_ufColor.SetActive(false);
|
|
}
|
|
|
|
_ufData.isColorRemoved = true;
|
|
}
|
|
|
|
|
|
public void UFinit()
|
|
{
|
|
_ufModule.SetActive(!_ufData.isUFRemoved);
|
|
_ufSocket.SetActive(!_ufData.isUFRemoved);
|
|
_ufCover.SetActive(!_ufData.isUFCoverRemoved);
|
|
_ufColor.SetActive(!_ufData.isColorRemoved);
|
|
}
|
|
|
|
|
|
private void LoadData(UFData ufData)
|
|
{
|
|
UFinit(); // 读取存档文件时触发,将当前系统恢复为目标状态
|
|
}
|
|
|
|
void Start()
|
|
{
|
|
UFinit();
|
|
}
|
|
}
|
|
|
|
public class UFData : IData
|
|
{
|
|
public bool isUFCoverRemoved = false;
|
|
public bool isUFRemoved = false;
|
|
|
|
public bool isColorRemoved = false;
|
|
|
|
public event Action<UFData> LoadEvent;
|
|
|
|
public void Load()
|
|
{
|
|
LoadEvent?.Invoke(this);
|
|
}
|
|
} |