11using System.Collections.Generic;
22 protected virtual void Awake() {
24 if (gameObject !=
null) {
44 public abstract void SweepTime(
float from,
float to);
63 base.EnterRecordingMode();
64 data = ScriptableObject.CreateInstance<T>();
68 base.ExitRecordingMode(savePath);
70 AssetDatabase.CreateAsset(
data, savePath);
75 if (
data.times.Count == 0) {
78 return data.times[
data.times.Count - 1];
82 public override sealed
void SweepTime(
float from,
float to) {
83 int startIndex =
data.times.BinarySearch(from);
84 int endIndex =
data.times.BinarySearch(to);
87 startIndex = ~startIndex;
94 for (
int i = startIndex; i < endIndex; i++) {
100 if (
data.times ==
null)
data.times =
new List<float>();
101 if (
data.args ==
null)
data.args =
new List<K>();
104 data.args.Add(state);
abstract void InvokeArgs(K state)
override void EnterRecordingMode()
override void ExitRecordingMode(string savePath)
override sealed void SweepTime(float from, float to)
override sealed float GetDuration()
static HierarchyRecorder instance
static Action OnBeginRecording
virtual void EnterRecordingMode()
abstract void SweepTime(float from, float to)
virtual void ExitRecordingMode(string savePath)
abstract float GetDuration()
virtual void EnterPlaybackMode()