using UnityEngine; namespace EOUtils { /// /// 颜色(TODO:最好把这个移到别的文件中以避免过多对此文件的依赖) /// public enum Color { RED, // TODO }; } public interface INote { /// /// Note 的状态 /// public State state { get; } /// /// Note 的颜色 /// EOUtils.Color color { get; } /// /// Note 开始 activate 的时间 /// float startTime { get; } /// /// Note 与判定线重叠的时间 /// float hitTime { get; } /// /// Note 的分数 /// int noteScore { get; } /// /// Note 的状态 /// enum State { /// /// Note 未被初始化。 /// UNINITIALIZED, /// /// Note 已被预加载且未出现在场景中 /// PRELOADED, /// /// Note 正在场景中且没有被聚焦 /// ALIVE, /// /// Note 被聚焦 /// FOCUSED, /// /// Note 已经消亡 /// DIED }; /// /// 激活 Note /// /// 如果 Note 当前状态不能被激活 void Activate(); /// /// 聚焦 Note。 /// /// 如果 Note 当前状态不可以被聚焦 void Focus(); /// /// 杀死 Note。 /// void Kill(); /// /// 在 hit 输入时调用。如果 /// /// 输入 hit 时的游戏时间 /// 输出精准度 /// hit 是否对这个 hit 生效。如果 hit 没有生肖 accuracy 将会返回无效值 bool hitInput(float time, out float accuracy); /// /// 根据时间更新 Note 的位置。 /// /// 当前时间(单位:秒) /// 生成时的位置 /// 与判定线重合的位置 void UpdateMovement(float time, Vector2 startPos, Vector2 hitPos); }