【发布时间】:2023-03-08 14:23:01
【问题描述】:
我有一个具有public float reviveTimer 的 Player 类。所以当一个玩家被击倒时,另一个玩家可以去复活他们,这会为被击落的玩家启动一个协程,增加复活计时器直到它达到 10。
有一种情况,如果一个玩家去救一个倒地的玩家,5 秒后第二个玩家来救那个倒地的玩家,1 秒后第一个玩家离开,第二个玩家应该继续复活过程自原始启动器离开后,还剩 6 秒 (5+1) 而不是重新启动计时器。所以当第二个玩家进来救活被击倒的玩家时,他们需要知道复活时间是 5 秒。
因此,我做了一些像timer = downedPlayer.reviveTimer; 这样简单的事情。
但是,无论实际计时器设置为什么,这始终返回 0,就好像我无法检索协程中 reviveTimer 设置的内容一样。
那么我如何或可以检索在协程中设置的reviveTimer 的值?
编辑:
根据要求,添加代码。当玩家倒地时,这是倒地玩家运行的协程。
IEnumerator ReviveMeTimer()
{
while (reviveTimer < 10)
{
reviveTimer += Time.deltaTime;
reviveIndicatorTimer.text = ((int)reviveTimer).ToString();
reviveIndicatorImage.fillAmount = reviveTimer / 10;
yield return null;
}
}
【问题讨论】:
-
请尽可能发布您的协程和其他相关代码。