我试图让我的角色在我轻按shift时划线其当前移动的方向。现在我必须按住shift键,然后点按我想破折的方向。
ive尝试切换顺序,并且ive尝试更改代码以使用双击来破折号。到目前为止没有运气
public class Dash : MonoBehaviour
{
private Rigidbody rb;
public float dashSpeed;
private float dashTime;
public float startDashTime;
private int direction;
void Update()
{
//dash
if (direction == 0)
{
if (Input.GetKey(KeyCode.LeftShift) && Input.GetKeyDown(KeyCode.A))
{
direction = 1;
}
else if (Input.GetKey(KeyCode.LeftShift) && Input.GetKeyDown(KeyCode.D))
{
direction = 2;
}
else if (Input.GetKey(KeyCode.LeftShift) && Input.GetKeyDown(KeyCode.W))
{
direction = 3;
}
else if (Input.GetKey(KeyCode.LeftShift) && Input.GetKeyDown(KeyCode.S))
{
direction = 4;
}
我希望角色向左划线。我希望能够按住“ A”键朝该方向扫射,然后点击“ Shift”进行短划线。
如果我按住“ A”,则我朝这个方向努力,但“ Shift”则不执行任何操作。如果我按住“ Shift”,然后点按“ A”,则字符将达到我期望的破折号。
答案 0 :(得分:0)
代替:
if (Input.GetKey(KeyCode.LeftShift) && Input.GetKeyDown(KeyCode.A))
尝试:
if (Input.GetKeyDown(KeyCode.LeftShift) && Input.GetKey(KeyCode.A))
Input.GetKeyDown
在按下键的第一帧中只返回true
,而Input.GetKey
在您按住键的每一帧中都返回true