轻按Shift键即可保持运动和冲刺

时间:2019-05-26 10:00:31

标签: c# unity3d game-development

我试图让我的角色在我轻按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”,则字符将达到我期望的破折号。

1 个答案:

答案 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