当前位置:   article > 正文

Unity中实现在规定时间内从一个值递增到另一个值_unity 5秒达到设置的数值

unity 5秒达到设置的数值

目录

1、进度条(在规定时间内完成进度条)

2、数值递增(在规定时间内从0递增到115)

3、数值递减(在规定时间内从一个值递减到0)


1、进度条(在规定时间内完成进度条)

  1. private Image progressBar;
  2. private float currentProgress = 0;
  3. /// <summary>
  4. /// 进度条需要持续的时长
  5. /// </summary>
  6. private float duration = 5f;//这个时间可以任意定义
  7. private void ProgressBar()
  8. {
  9. currentProgress += Time.deltaTime;
  10. progressBar.fillAmount = currentProgress / duration;
  11. if (currentProgress >= duration)
  12. {
  13. progressBar.fillAmount = 1;
  14. }
  15. }

2、数值递增(在规定时间内从0递增到115)

  1. private Text showText;//展示的Text
  2. private float time = 5f;//指定的时间
  3. private float currentVaule = 0f;//起始值
  4. private float targetVaule = 115f;//目标值
  5. /// <summary>
  6. /// 数据递增
  7. /// </summary>
  8. public void DataIncrement()
  9. {
  10. currentVaule += Time.deltaTime * (targetVaule / time);
  11. if (currentVaule >= targetVaule)
  12. {
  13. currentVaule = targetVaule;
  14. }
  15. showText.text = currentVaule.ToString("0000.00");
  16. }

3、数值递减(在规定时间内从一个值递减到0)

  1. /**
  2. * start要与max的值保持一致
  3. * **/
  4. private float start = 10;//此值为开始递减的默认值
  5. private float max = 10;//修改此值设置递减比例
  6. public float duration = 3f;//持续时间
  7. private float timer;
  8. /// <summary>
  9. /// 在规定时间内从一个值递减到0
  10. /// </summary>
  11. private void DataDecrement()
  12. {
  13. if (start > 0)
  14. {
  15. start -= max * Time.deltaTime / duration;
  16. timer += Time.deltaTime;
  17. if (timer >= 1)
  18. {
  19. Debug.LogError(timer);
  20. timer = 0;
  21. }
  22. }
  23. else
  24. start = 0;
  25. }

注:以上方法需放在Update中调用执行

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/496886
推荐阅读
相关标签
  

闽ICP备14008679号