当我按下左箭头时,我想缩小精灵,当我按下右箭头时,我想缩放精灵。我制作了这个代码并且它可以正常工作,但速度非常快。如果我按下按钮1秒钟,它可以扩展到100万次。我究竟做错了什么? posts
就像0.0001,但它仍然很快疯狂。
scalingSpeed
答案 0 :(得分:1)
这里的问题是你的缩放代码不会线性地改变精灵的localScale
- 它实际上是指数级的!请考虑以下事项:
localScale += new Vector3 (localScale.x - scalingSpeed, localScale.y - scalingSpeed, 0);
转换为:
localScale = localScale + new Vector3 (localScale.x - scalingSpeed, localScale.y - scalingSpeed, 0);
这意味着每一帧,您都没有向scalingSpeed
添加向量等效值localScale
- 您在{{之间添加了差异 1}}和localScale
到scalingSpeed
,这是更大,更大(每帧几乎加倍localScale
。)
同时使用localScale
和更改+=
的每个组件是多余的。我的建议?不要从localScale
的每个组成部分中减去scalingSpeed
- 而是将其与localScale
相乘,然后相加/减去:
Vector3.one
希望这有帮助!如果您有任何问题,请告诉我。
答案 1 :(得分:0)
看起来它会在每个GetKey事件上触发。正如文档所说"Think auto fire",每次按键都不止一次。每次按键都需要将其限制为一次。