Unity中将按键按下判断逻辑修改为按键未按下检测的实现方法
取反运算符放置方法
要实现「左方向键未按下」的判断逻辑,只需要将!放在Input.GetKey()调用表达式的最前方,对该方法返回的布尔值直接取反即可,修改后代码如下:
if (!Input.GetKey(KeyCode.LeftArrow)) { rotation += speed * Time.deltaTime; }
左右方向键均未按下的实现逻辑
你给出的原有代码中重复写入了两次右键检测的表达式,属于笔误。要实现两个按键都未按下的判断,给两个按键检测分别加!取反后,用&&逻辑与运算符连接即可,完整修改后代码如下:
if (!Input.GetKey(KeyCode.LeftArrow) && !Input.GetKey(KeyCode.RightArrow)) { if (transform.eulerAngles.z < 0) { rotation += speed * Time.deltaTime; } }
补充说明
!作为一元运算符优先级高于逻辑与&&,因此上述代码不需要额外加括号包裹单个取反表达式,额外加括号也不会影响执行效果,两种写法逻辑完全一致。
内容的提问来源于stack exchange,提问作者Stanley Easthope
相关产品推荐
相关产品推荐

