很简单,可以通过记录当前状态和上次状态比对实现。
MyButton
public class MyButton
{
public bool IsPressing = false;
public bool OnPressed = false;
public bool OnReleased = false;
private bool curState = false;
private bool lastState = false;
public void Tick(bool input)
{
curState = input;
IsPressing = curState;
OnPressed = false;
OnReleased = false;
if(curState != lastState)
{
if (curState)
{
OnPressed = true;
}
else
{
OnReleased = true;
}
}
lastState = curState;
}
}
KeyboardInput
public MyButton ButonRun = new MyButton();
void Update()
{
ButonRun.Tick(Input.GetKey("left shift"));
run = ButonRun.IsPressing;
}
|