MyTool_Static.TriggerMarker标记\计时方法

static public class TriggerMarker{...}

查看:MyTool.Dynamic.TriggerMarkerr(标记\累加)器

目录

1.Edge 边缘检测

2.Trigger T触发器

3.Clock 计时器

4.Count 计数器


1.Edge 边缘检测

/// <summary>
/// 边缘检测:检测Switch是否发生变化,触发标记变成true一次 ; (false/true)用[与]运算过滤上下边缘
/// </summary>
/// <param name="Switch">主判断</param>
/// <param name="bit">标记位</param>
/// <returns>return : 触发标记</returns>
static public bool Edge(bool Switch ,ref bool bit){
	bool T = Switch&&!bit;	
	bit = Switch;			
	return T;
}

2.Trigger T触发器

/// <summary>
/// T触发器:Switch间隔变成true,可改变触发标记状态(false/true)
/// </summary>
/// <param name="Switch">主判断</param>
/// <param name="bit">标记位</param>
/// <param name="trigger">触发标记</param>
/// <returns>return : 触发标记</returns>
static public bool Trigger(bool Switch,ref bool  bit,ref bool trigger){
	if(Switch&&!bit)trigger = !trigger;
	bit = Switch;
	return trigger;
}

3.Clock 计时器

/// <summary>
/// 计时器:计算执行时间,需要手动清零
/// </summary>
/// <param name="seconds">计时位</param>
/// <param name="Tarseconds">定时位</param>
/// <returns>return : 触发标记</returns>
static public bool Clock(ref float seconds,float Tarseconds){//手动清零,重新计时
	if(seconds<=Tarseconds){
		seconds+=Time.deltaTime;//计时
		return false;
	}else{
		return true;
	}
}

4.Count 计数器

/// <summary>
/// 计数器:计算执行次数,需要手动清零
/// </summary>
/// <param name="count">计数位</param>
/// <param name="Tarcount">设定数</param>
/// <returns>return : 触发标记</returns>
static public bool Count(ref int count,int Tarcount){
	if(count<=Tarcount){
		count+=1;
		return false;
	}else{
		return true;
	}
}

猜你喜欢

转载自blog.csdn.net/qq_40346899/article/details/86529181