using System; using System.Collections; using System.IO; using Convention; using UnityEngine; namespace Demo.Game { namespace ConfigType { public class BasicSplineJustFollowConfig : ScriptLoadableConfig { public int MySplineCore; public override void Deserialize(BinaryReader reader) { MySplineCore = BinarySerializeUtility.ReadInt(reader); base.Deserialize(reader); } public override void Serialize(BinaryWriter writer) { BinarySerializeUtility.WriteInt(writer, MySplineCore); base.Serialize(writer); } } } public abstract class BasicSplineJustFollow : Updatement, IDependOnSplineCore { /// /// 加载并绑定到新样条线 /// /// 对象路径, 不存在时则立刻加载 [Convention.RScript.Variable.Attr.Method] public void LoadSpline(SplineCore core) { MySplineCore = core; } public SplineCore MySplineCore { get; set; } protected override float Lerp(float begin, float end, float t) { return Mathf.Lerp(begin, end, t); } protected override abstract void UpdateData(float data); public override IEnumerator UnloadScript() { MySplineCore = null; yield return base.UnloadScript(); } /// /// 新增 /// /// 插值时间 /// /// 可取值为30种缓动曲线 [Convention.RScript.Variable.Attr.Method] public void Add(float time, float value, MathExtension.EaseCurveType curveType) { ManualAddEntry(time, value, curveType); } } }