【Unity3D应用案例系列】时钟、钟表小组件开发
发布日期:2021-06-30 11:40:15 浏览次数:2 分类:技术文章

本文共 1211 字,大约阅读时间需要 4 分钟。

推荐阅读

一、前言

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

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

在这里插入图片描述

二、效果图及源工程下载

效果图:

在这里插入图片描述
源工程下载:

https://wwr.lanzoui.com/iA2Ngpivf6f

三、实现

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); }}

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

在这里插入图片描述

四、后言

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

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

突然又想到了一个案例,就是太阳系星球的公转和自转,嗯~

就这样,结束。

转载地址:https://itmonon.blog.csdn.net/article/details/117330118 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【Unity日常开发】创建脚本自动添加头注
下一篇:【Unity3D开发小游戏】专栏文章导读清单

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月19日 16时05分25秒