Unity GetMouseButtonDown获取点击次数不准

按一次鼠标左键,结果执行了两次

 

把GetMouseButtonDown从FixedUpdate移到Update中即可解决

相关知识

FixedUpdate

Unity - Scripting API: MonoBehaviour.FixedUpdate()

固定更新事件,执行N次,0.02秒执行一次。所有物理组件相关的更新都在这个事件中处理。不管当前机器忙不忙,都会保证每一帧执行一次,避免跳帧。固定更新常用于移动模型等操作。

Update

更新事件,执行N次,每帧执行一次。
每一帧执行的,监听用户输入,播放动画,当机器忙或者性能差的时候,他会停止执行,会产生停顿的感觉,例如一个人本来在1米的位置,突然到了5米的位置上,产生了跳帧,而下面的FixedUpdate方法则相反,会一米一米的去执行。

LateUpdate

稍后更新事件,执行N次,在 Update() 事件执行完毕后再执行。
先执行Update,然后才去执行lateUpdate(Update方法执行完,必定接着执行LateUpdate,而Update和FixedUpdate方法的执行顺序不确定,而且有时候FIxedUpdate执行了多帧,而Update却只执行了一帧,这就是因为跳帧的缘故造成的(取决于你的机器性能)!),如果现在有100个脚本,分别有100个 Update()函数,其中只有一个LateUpdate,那么在同一帧中,等待100个Update()执行完后,才执行这一个LateUpdate()。

OnDisable

禁用事件,执行一次。在 OnDestroy() 事件前执行。或者当该脚本组件被“禁用”后,也会触发该事件。

OnDestroy

销毁事件,执行一次。当脚本所挂载的游戏物体被销毁时执行。

猜你喜欢

转载自blog.csdn.net/weixin_43673589/article/details/123859843