2025-12-12 15:54:16 +08:00
|
|
|
|
using Convention;
|
2025-12-15 17:20:55 +08:00
|
|
|
|
using Demo.Game.Attr;
|
2025-12-12 15:54:16 +08:00
|
|
|
|
using System.Collections;
|
2025-12-17 15:50:03 +08:00
|
|
|
|
using System.IO;
|
2025-12-12 15:54:16 +08:00
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Demo.Game
|
|
|
|
|
|
{
|
2025-12-17 15:50:03 +08:00
|
|
|
|
namespace ConfigType
|
|
|
|
|
|
{
|
|
|
|
|
|
public class BaseVolumeUpdatementConfig:ScriptLoadableConfig
|
|
|
|
|
|
{
|
|
|
|
|
|
public int target;
|
|
|
|
|
|
public string updateOverride;
|
|
|
|
|
|
public string updateField;
|
|
|
|
|
|
|
|
|
|
|
|
public override void Deserialize(BinaryReader reader)
|
|
|
|
|
|
{
|
|
|
|
|
|
target = BinarySerializeUtility.ReadInt(reader);
|
|
|
|
|
|
updateOverride = BinarySerializeUtility.ReadString(reader);
|
|
|
|
|
|
updateField = BinarySerializeUtility.ReadString(reader);
|
|
|
|
|
|
base.Deserialize(reader);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void Serialize(BinaryWriter writer)
|
|
|
|
|
|
{
|
|
|
|
|
|
BinarySerializeUtility.WriteInt(writer, target);
|
|
|
|
|
|
BinarySerializeUtility.WriteString(writer, updateOverride);
|
|
|
|
|
|
BinarySerializeUtility.WriteString(writer, updateField);
|
|
|
|
|
|
base.Serialize(writer);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-12-12 15:54:16 +08:00
|
|
|
|
public abstract class BaseVolumeUpdatement<T> : Updatement<T> where T : unmanaged
|
|
|
|
|
|
{
|
|
|
|
|
|
[Content, SerializeField] private BaseVolume target;
|
|
|
|
|
|
[Content, SerializeField] private string updateOverride;
|
|
|
|
|
|
[Content, SerializeField] private string updateField;
|
|
|
|
|
|
|
|
|
|
|
|
protected override IEnumerator DoSomethingDuringApplyScript()
|
|
|
|
|
|
{
|
|
|
|
|
|
yield return base.DoSomethingDuringApplyScript();
|
|
|
|
|
|
if (target == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
target = this.UpdateTarget.SeekComponent<BaseVolume>();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected override void UpdateData(T data)
|
|
|
|
|
|
{
|
|
|
|
|
|
target.TrySetOverrideField<T>(updateOverride, updateField, data);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[Convention.RScript.Variable.Attr.Method]
|
|
|
|
|
|
public void SetUpdateOverrideAndField(string updateOverride, string updateField)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.updateOverride = updateOverride;
|
|
|
|
|
|
this.updateField = updateField;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 新增
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="time">插值时间</param>
|
|
|
|
|
|
/// <param name="value">值</param>
|
|
|
|
|
|
/// <param name="curveType">缓动曲线</param>
|
|
|
|
|
|
[Convention.RScript.Variable.Attr.Method]
|
|
|
|
|
|
public void Add(float time, T value, MathExtension.EaseCurveType curveType)
|
|
|
|
|
|
{
|
|
|
|
|
|
ManualAddEntry(time, value, curveType);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|