* 作者:闪电Y黑客
* 日期: 2019.6.11
* 功能:在Update 里进行计数标记
使用例子:
using SDHK_Tool.Dynamic;
public float value = 3;
private SD_MarkerCount MarkerCount;
void Start()
{
MarkerCount = new SD_MarkerCount();
}
void Update()
{
if (MarkerCount.isCount(value,1))
{
Debug.Log("累加到指定值");
}
}
全篇:
using SDHK_Tool.Static;
/*
* 作者:闪电Y黑客
*
* 日期: 2019.6.11
*
* 功能:在update 里进行计数标记
*/
namespace SDHK_Tool.Dynamic
{
/// <summary>
/// 计数标记器
/// </summary>
public class SD_MarkerCount
{
private float Count = 0;
private SD_MarkerEdge MarkerEdge;
public SD_MarkerCount(){
MarkerEdge = new SD_MarkerEdge();
}
/// <summary>
/// 计数器:计算执行次数(一次性)
/// 到达指定值返回一帧true
/// </summary>
/// <param name="targetCount">设定数</param>
/// <param name="Cumulative">累加数</param>
/// <returns>return : 触发标记</returns>
public bool isCount(int targetCount, float Cumulative)
{
return MarkerEdge.isEdge(SS_TriggerMarker.Count(ref Count, targetCount, Cumulative));
}
/// <summary>
/// 计数器:计算执行次数
/// 循环触发:到达指定值返回一帧true,并重置时间再次计时
/// 持续触发:到达指定值后,一直返回false
/// </summary>
/// <param name="targetCount">设定数</param>
/// <param name="Cumulative">累加数</param>
/// <param name="Switch">true/false(循环触发/持续触发)</param>
/// <returns>return : 触发标记</returns>
public bool isCount(int targetCount, float Cumulative, bool Switch)
{
bool bit = SS_TriggerMarker.Count(ref Count, targetCount, Cumulative);
if (bit && Switch) Reset_Marker();
return (Switch) ? MarkerEdge.isEdge(bit) : bit;
}
/// <summary>
/// 重置检测器
/// </summary>
public void Reset_Marker()
{
Count = 0;
MarkerEdge.Reset_Marker();
}
}
}