按住键时(C#统一)

时间:2019-04-25 22:13:33

标签: unity3d

我希望我的角色在单击ctrl按钮时可以蹲下,为此,我编写了这段代码,但不幸的是它无法正常工作。

    if (Input.GetKey(KeyCode.LeftControl))
    {
        this.gameObject.GetComponent<SpriteRenderer>().sprite = crouchedSprite;
    }

2 个答案:

答案 0 :(得分:0)

释放钥匙后,您需要重置精灵。

void Update()
{
    if (Input.GetKeyDown(KeyCode.LeftControl))
    {
        print("LeftControl pressed.");
        this.gameObject.GetComponent<SpriteRenderer>().sprite = crouchedSprite;
    }
    else if (Input.GetKeyUp(KeyCode.LeftControl))
    {
        print("LeftControl released.");
        this.gameObject.GetComponent<SpriteRenderer>().sprite = normalSprite;
    }

}

答案 1 :(得分:0)

请勿在每次更新时调用GetComponent。这会导致不必要的开销。在Awake中调用一次,然后存储在字段中。

将您的代码更改为此,它应该可以工作:

spriteRenderer.sprite =
Input.GetKey(KeyCode.LeftControl) ? crouchedSprite : normalSprite;