【发布时间】:2021-10-25 02:15:40
【问题描述】:
我正在尝试创建一个函数来停止玩家控制,但是当我将持续时间作为参数传递给函数时,变量保持在一个巨大的数字,从未真正减少。
public void StopAllPlayerControl(float duration) {
stopPlayerDuration = duration;
stopPlayerDuration -= Time.deltaTime;
//stop here what you need.
playerInput.enableMovement = false;
if (stopPlayerDuration <= 0) {
//restore here to normal state
playerInput.enableMovement = true;
}
}
我在这样的更新方法中调用这个函数
StopAllPlayerControl(3);
此处的图像显示 stopPlayerDuration 变得很大,但保持在这些大数字上从未真正减少。 huge number
【问题讨论】:
-
好吧,你一遍又一遍地开始一个新的停止过程,并总是每帧重置
stopPlayerDuration = duration;...所以在duration - Time.deltaTime下这个值永远不会减少...。改变你的逻辑,要么使用一个协程或只设置一次初始持续时间...
标签: unity3d countdown countdowntimer