
一个用来存储变化后按键的值,一个用来实现只执行一次的代码
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]}");
}
文章介绍了Unity游戏中的MovePosition方法,如何处理玩家左右移动键(A和D)并限制其只执行一次,以及使用DirectionFile函数存储和更新方向值。
&spm=1001.2101.3001.5002&articleId=132102151&d=1&t=3&u=d4b72f31c2714bb68c564462d1260f3a)
3746

被折叠的 条评论
为什么被折叠?



