【100个 Unity实用技能】☀️ | Unity 将秒数转化为00:00:00时间格式

请添加图片描述

Unity 小科普

老规矩,先介绍一下 Unity 的科普小知识:

  • Unity是 实时3D互动内容创作和运营平台 。
  • 包括游戏开发美术建筑汽车设计影视在内的所有创作者,借助 Unity 将创意变成现实。
  • Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机平板电脑PC游戏主机增强现实虚拟现实设备。
  • 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏
  • 博客主页:https://xiaoy.blog.csdn.net

  • 本文由 呆呆敲代码的小Y 原创,首发于 CSDN

  • 学习专栏推荐:Unity系统学习专栏

  • 游戏制作专栏推荐:游戏制作

  • Unity实战100例专栏推荐:Unity 实战100例 教程

  • 欢迎点赞 收藏 ⭐留言 如有错误敬请指正!

  • 未来很长,值得我们全力奔赴更美好的生活✨

  • ------------------❤️分割线❤️-------------------------


Unity 实用小技能学习

Unity 将秒数转化为00:00:00时间格式

在游戏中我们有时候会拿到玩家本次游玩某个关卡的游戏时间,拿到的时间一般是float\int。

此时需要将float\int值转换为一个时间格式,如00:00:00这种,一起看下解决方案吧。

    private void FloatForTime(float time)
    {
        //秒数取整
        int seconds = (int)time;
        //一小时为3600秒 秒数对3600取整即为小时
        int hour = seconds / 3600;
        //一分钟为60秒 秒数对3600取余再对60取整即为分钟
        int minute = seconds % 3600 / 60;
        //对3600取余再对60取余即为秒数
        seconds = seconds % 3600 % 60;
        
        //打印00:00:00时间格式
       Debug.Log($"时间:{hour:D2}:{minute:D2}:{seconds:D2}");
    }

time为传入的float值,比如传入255,则打印结果如下:

【100个 Unity实用技能】☀️ | Unity 将秒数转化为00:00:00时间格式_第1张图片

也可以简单封装一个方法专门用来将float值转换为时间格式,代码如下所示:

public class TimeDemo : MonoBehaviour
{
    private void Start()
    {
    	//打印255.55转换为时间格式
        Debug.Log(255.55f.ToTimeFormat());
    }
}

public static class FloatExtension
{
    /// 
    /// 将秒数转化为00:00:00格式
    /// 
    /// 秒数
    /// 00:00:00
    public static string ToTimeFormat(this float time)
    {
        //秒数取整
        int seconds = (int)time;
        //一小时为3600秒 秒数对3600取整即为小时
        int hour = seconds / 3600;
        //一分钟为60秒 秒数对3600取余再对60取整即为分钟
        int minute = seconds % 3600 / 60;
        //对3600取余再对60取余即为秒数
        seconds = seconds % 3600 % 60;
        //返回00:00:00时间格式
        return string.Format("{0:D2}:{1:D2}:{2:D2}", hour, minute, seconds);
    }
}

在这里插入图片描述

你可能感兴趣的:(Unity,100个实用技能,unity,游戏引擎,时间格式,时间转换,int转时间)