using Convention; using Demo.Attr; using System.Collections; using UnityEngine; namespace Demo.Game { 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); } } }