经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 软件/图像 » unity » 查看文章
Unity3D应用之时钟与钟表小组件的使用教程
来源:jb51  时间:2023/2/1 9:35:35  对本文有异议

一、前言

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

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

二、效果图及源工程下载

效果图:

源工程下载:

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

三、实现

3-1 场景搭建

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

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

搭建后如下图所示:

3-2 代码实现

  1. using System;
  2. using UnityEngine;
  3.  
  4. public class Clock : MonoBehaviour
  5. {
  6. private GameObject HourHands;//时针
  7. private GameObject MinuteHand;//分针
  8. private GameObject SecondHand;//秒针
  9.  
  10. void Start()
  11. {
  12. HourHands = GameObject.Find("时钟/时针");
  13. MinuteHand = GameObject.Find("时钟/分针");
  14. SecondHand = GameObject.Find("时钟/秒针");
  15. }
  16.  
  17. void Update()
  18. {
  19. TimeSpan time = DateTime.Now.TimeOfDay;
  20. HourHands.transform.localRotation = Quaternion.AngleAxis(30 * time.Hours, Vector3.up);
  21. MinuteHand.transform.localRotation = Quaternion.AngleAxis(6 * time.Minutes, Vector3.up);
  22. SecondHand.transform.localRotation= Quaternion.AngleAxis(6 * time.Seconds, Vector3.up);
  23. }
  24. }

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

四、后言

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

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

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号