94 lines
2.2 KiB
C#
94 lines
2.2 KiB
C#
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();
|
||
|
||
/// <summary>
|
||
/// 在AfterInitialize中被调用,用于处理GameElement的“需要引用”的物体在此物体后面生成的情况。
|
||
/// 注意,如果使用此函数,需要在ExecuteBM中设置 matchedElement.matchedBM = this;
|
||
/// </summary>
|
||
public virtual void AfterExecute()
|
||
{
|
||
|
||
}
|
||
}
|
||
}
|
||
} |