【发布时间】:2019-07-29 11:19:16
【问题描述】:
我正在 Unity 中构建一个游戏,其中我的角色在按下空格键时会滑动。他只能在跑步或冲刺时滑动。当玩家开始滑动时,玩家的速度应该会随着时间的推移而降低,这意味着他不能永远滑动或始终以相同的速度滑动。
我已经尝试做另一个具有恒定值的浮点数,并随着时间的推移(Time.deltaTime)随着该常数降低玩家速度。但是,它只将时间减少了一次,它需要每秒执行一次。
float playerSpeed=5.2f;
Update()
{
if (Input.GetKey(KeyCode.Space) && (isRunning == true || isSprinting == 1))
{
isSliding = true;
}
else
{
isSliding = false;
}
}
我预计玩家速度会在 2 秒内从 5.2 降至 0。
【问题讨论】:
-
你能把减去播放器速度的代码也包括进去吗?
-
短代码:
isSliding = Input.GetKey(KeyCode.Space) && (isRunning || isSprinting == 1); -
只是一个建议,但我注意到您提到速度应该“每秒”减少。相反,我会在每个周期降低我的速度,在两秒的跨度内以百分比的形式将减速分散到 0。这将使幻灯片更加流畅。
-
不应该名为
isSprinting的属性/变量是布尔值吗?