Files
ichni_Official/Assets/Scripts/Game/Base/BaseElement.cs

94 lines
2.2 KiB
C#
Raw Normal View History

2025-06-03 02:42:28 -04:00
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Ichni.RhythmGame.Beatmap;
using Sirenix.OdinInspector;
using UniRx;
using UnityEngine;
namespace Ichni.RhythmGame
{
public interface IBaseElement
{
public BaseElement_BM matchedBM { get; set; }
/// <summary>
/// 用于生成存档
/// </summary>
public void SaveBM()
{
}
/// <summary>
/// 刷新物体的状态
/// </summary>
public void Refresh()
{
}
/// <summary>
/// 当物体被删除时执行的方法
/// </summary>
public void OnDelete()
{
throw new NotImplementedException();
}
/// <summary>
/// 删除物体,包括所有子物体
/// </summary>
public void Delete()
{
throw new NotImplementedException();
}
public void SetUpInspector()
{
}
}
// public virtual void SetTimeDuration()
// {
//
// }
//
// public void ApplyTimeDuration()
// {
// childElementList.ForEach(x => x.ApplyTimeDuration());
// timeDurationSubmodule?.SetDurationFromChildren(
// childElementList.Select(x => x.timeDurationSubmodule).ToList());
// }
//
public interface IHaveInteraction
{
public void TriggerInteraction();
}
namespace Beatmap
{
public abstract class BaseElement_BM
{
public Guid attachedElementGuid;
/// <summary>
/// 从存档类中生成游戏物体
/// </summary>
public abstract void ExecuteBM();
2025-07-21 05:42:20 -04:00
/// <summary>
/// 在AfterInitialize中被调用用于处理GameElement的“需要引用”的物体在此物体后面生成的情况。
/// 注意如果使用此函数需要在ExecuteBM中设置 matchedElement.matchedBM = this;
/// </summary>
public virtual void AfterExecute()
{
}
2025-06-03 02:42:28 -04:00
}
}
}