67 lines
1.9 KiB
C#
67 lines
1.9 KiB
C#
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<float>, IDependOnSplineCore
|
|
{
|
|
/// <summary>
|
|
/// 加载并绑定到新样条线
|
|
/// </summary>
|
|
/// <param name="path">对象路径, 不存在时则立刻加载</param>
|
|
[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();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 新增
|
|
/// </summary>
|
|
/// <param name="time">插值时间</param>
|
|
/// <param name="value"></param>
|
|
/// <param name="curveType">可取值为30种缓动曲线</param>
|
|
[Convention.RScript.Variable.Attr.Method]
|
|
public void Add(float time, float value, MathExtension.EaseCurveType curveType)
|
|
{
|
|
ManualAddEntry(time, value, curveType);
|
|
}
|
|
}
|
|
}
|