using Convention; using Demo.Game.Attr; using System.Collections; using System.IO; using UnityEngine; namespace Demo.Game { 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); } } } public abstract class BaseVolumeUpdatement : Updatement 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(); } } protected override void UpdateData(T data) { target.TrySetOverrideField(updateOverride, updateField, data); } [Convention.RScript.Variable.Attr.Method] public void SetUpdateOverrideAndField(string updateOverride, string updateField) { this.updateOverride = updateOverride; this.updateField = updateField; } /// /// 新增 /// /// 插值时间 /// 值 /// 缓动曲线 [Convention.RScript.Variable.Attr.Method] public void Add(float time, T value, MathExtension.EaseCurveType curveType) { ManualAddEntry(time, value, curveType); } } }