一个用来存储变化后按键的值,一个用来实现只执行一次的代码
private void MovePosition()
{
float speed = 5; //可以修改速度值
float horizontal = 0;
horizontal = Input.GetAxisRaw("Horizontal");
DirectionFile(horizontal);//把输入的值存入数组中
if (Input.GetKey(KeyCode.A) && Input.GetKey(KeyCode.D))
{
if (Input.GetKeyDown(KeyCode.A) && one_execute)
{
direction_file[0] = -1;
one_execute = false;
}
else if (Input.GetKeyDown(KeyCode.D) && one_execute)
{
direction_file[1] = 1;
one_execute = false;
}
player_2d.velocity = new Vector2(direction_file[0] * speed, player_2d.velocity.y);
}
else
{
player_2d.velocity = new Vector2(horizontal * speed, player_2d.velocity.y);
}
}
}
private void DirectionFile(float horizontal)
{
if (direction_file[1] != horizontal && horizontal != 0)
{
direction_file[0] = direction_file[1];
direction_file[1] = horizontal;
}
Debug.Log($"{direction_file[0]},{direction_file[1]}");
}