Files
Convention-Unity-Demo/Assets/Scripts/Framework/DDT.cs

63 lines
1.6 KiB
C#
Raw Normal View History

2025-11-25 17:04:19 +08:00
using System.Collections;
2025-09-25 19:04:05 +08:00
using System.Collections.Generic;
using Convention;
using UnityEngine;
using System;
2025-09-25 19:04:05 +08:00
namespace Demo.Game
{
2025-11-25 17:04:19 +08:00
public class DDT : ScriptableObject, IEnumerable<float>
2025-09-25 19:04:05 +08:00
{
public static DDT Make()
{
return new GameObject().AddComponent<DDT>();
}
public List<float> Datas = new();
2025-11-12 10:09:26 +08:00
[Convention.RScript.Variable.Attr.Method]
public void Add(float value)
{
Datas.Add(value);
}
[Convention.RScript.Variable.Attr.Method]
public void Add(int barSplitTimes, int barCount, int tickCount)
{
Datas.Add((barCount + tickCount / (float)barSplitTimes) * OneBarTime);
}
2025-11-25 17:04:19 +08:00
[Convention.RScript.Variable.Attr.Method]
public float At(int index)
{
if (index < 0)
index = Datas.Count + index;
if (index < 0 || index >= Datas.Count)
throw new IndexOutOfRangeException($"{index} is out of [0, {Datas.Count})");
2025-11-25 17:04:19 +08:00
return Datas[index];
}
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
/// </summary>
/// <returns></returns>
[Convention.RScript.Variable.Attr.Method]
public int GetCount()
{
return Datas.Count;
}
2025-11-25 17:04:19 +08:00
public IEnumerator<float> GetEnumerator()
{
return ((IEnumerable<float>)Datas).GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable)Datas).GetEnumerator();
}
public int Count => Datas.Count;
2025-09-25 19:04:05 +08:00
}
}