我有移动,跳跃和攻击动画但是如果我跳起来我按下攻击键,跳跃后的pj攻击并且我不想要它,所以我的问题是:
Unity是否记得用户按下的键?我可以避免吗?
答案 0 :(得分:2)
Unity是否记得用户按下哪个键?
这取决于使用哪个输入API。
Unity会记住,当使用 Input.GetKeyDown 时,关键用户仅在 1 框架中按下该按钮。在那个框架过去之后,它已经消失了,现在是假的。如果释放并再次按下该键,它将再次成立。
void Update()
{
//True when Space key is pressed
if (Input.GetKeyDown(KeyCode.Space))
{
}
//One Frame has passed, Input.GetKeyDown will be false next time Update() is called
}
Unity会记住,当使用 Input.GetKey 时,关键用户会按每个框架。只有钥匙被释放才会成真。
void Update()
{
//True when Space key is pressed
if (Input.GetKey(KeyCode.Space))
{
}
//One Frame has passed, Input.GetKe will STILL be true next time Update() is called
}
行为与 Input.GetKey
函数相同,只是它将 -1 返回到 1 值而不是{ {1}}或true
。当密钥被释放时,逐渐会在接下来的几帧中返回false
。
行为与 Input.GetKeyDown
函数相同,只是它将 -1 返回到 1 值而不是{ {1}}或0
。当密钥被释放时,它会立即返回true
。
答案 1 :(得分:1)
如果您使用Animator并使用按键设置触发器,则它们会保留在内存中,您必须手动清除它们。
要重置触发器,请使用ResetTrigger(字符串名称)方法 - Unity Documentation