当前位置 : 主页 > 网络编程 > c#编程 >

Unity3D应用之时钟与钟表小组件的使用教程

来源:互联网 收集:自由互联 发布时间:2023-03-22
目录 一、前言 二、效果图及源工程下载 三、实现 3-1 场景搭建 3-2 代码实现 四、后言 一、前言 又见面了哈,今天为大家介绍时钟、钟表的实现方法教程。 实现的方法有很多,这里只
目录
  • 一、前言
  • 二、效果图及源工程下载
  • 三、实现
    • 3-1 场景搭建
    • 3-2 代码实现
  • 四、后言

    一、前言

    又见面了哈,今天为大家介绍时钟、钟表的实现方法教程。

    实现的方法有很多,这里只是提供了一个思路,本着抛砖引玉的心态,希望能和大家共同学习。

    二、效果图及源工程下载

    效果图:

    源工程下载:

    https://pan.baidu.com/s/1x0AwvjoUkR5VBC8xnSQw7Q 提取码:mhns

    三、实现

    3-1 场景搭建

    使用Cylinder搭建一个时钟面,然后使用TextMesh设置小时数,最后使用长短不一的Cube做成时针、分针、秒针。

    在这里需要说明的第一点是,需要将时针、分针、秒针拖到对应的父物体下,做成预制体,因为代码是使用Quaternion.AngleAxis函数进行绕轴旋转,所以直接旋转针的话,就变成自转了,所以需要旋转它的父物体,这样子物体就跟着转了,将父物体的坐标设置为0,0,0,那么子物体就是以中心点旋转了。

    搭建后如下图所示:

    3-2 代码实现

    using System;
    using UnityEngine;
    
    public class Clock : MonoBehaviour
    {
        private GameObject HourHands;//时针
        private GameObject MinuteHand;//分针
        private GameObject SecondHand;//秒针
    
        void Start()
        {
            HourHands = GameObject.Find("时钟/时针");
            MinuteHand = GameObject.Find("时钟/分针");
            SecondHand = GameObject.Find("时钟/秒针");
        }
    
        void Update()
        {
            TimeSpan time = DateTime.Now.TimeOfDay;
            HourHands.transform.localRotation = Quaternion.AngleAxis(30 * time.Hours, Vector3.up);
            MinuteHand.transform.localRotation = Quaternion.AngleAxis(6 * time.Minutes, Vector3.up);
            SecondHand.transform.localRotation= Quaternion.AngleAxis(6 * time.Seconds, Vector3.up);
        }
    }
    

    没错,就是这几行代码就实现了:

    四、后言

    代码依旧延续简约风格,不多写一行代码

    整体思路也很简单,就是获取到当前时间,然后让时针分针秒针转到指定的角度即可。

    到此这篇关于Unity3D应用之时钟与钟表小组件的使用教程的文章就介绍到这了,更多相关Unity3D时钟钟表组件内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

    上一篇:关于C#中async/await的用法实例详解
    下一篇:没有了
    网友评论