Unity3D應用之時鐘與鐘表小組件的使用教程
一、前言
又見面了哈,今天為大家介紹時鐘、鐘表的實現(xiàn)方法教程。
實現(xiàn)的方法有很多,這里只是提供了一個思路,本著拋磚引玉的心態(tài),希望能和大家共同學習。
二、效果圖及源工程下載
效果圖:

源工程下載:
https://pan.baidu.com/s/1x0AwvjoUkR5VBC8xnSQw7Q 提取碼:mhns
三、實現(xiàn)
3-1 場景搭建
使用Cylinder搭建一個時鐘面,然后使用TextMesh設置小時數(shù),最后使用長短不一的Cube做成時針、分針、秒針。
在這里需要說明的第一點是,需要將時針、分針、秒針拖到對應的父物體下,做成預制體,因為代碼是使用Quaternion.AngleAxis函數(shù)進行繞軸旋轉(zhuǎn),所以直接旋轉(zhuǎn)針的話,就變成自轉(zhuǎn)了,所以需要旋轉(zhuǎn)它的父物體,這樣子物體就跟著轉(zhuǎn)了,將父物體的坐標設置為0,0,0,那么子物體就是以中心點旋轉(zhuǎn)了。
搭建后如下圖所示:

3-2 代碼實現(xiàn)
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);
}
}
沒錯,就是這幾行代碼就實現(xiàn)了:

四、后言
代碼依舊延續(xù)簡約風格,不多寫一行代碼
整體思路也很簡單,就是獲取到當前時間,然后讓時針分針秒針轉(zhuǎn)到指定的角度即可。
到此這篇關于Unity3D應用之時鐘與鐘表小組件的使用教程的文章就介紹到這了,更多相關Unity3D時鐘鐘表組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C#/.Net 中快速批量給SQLite數(shù)據(jù)庫插入測試數(shù)據(jù)
這篇文章主要介紹了C#/.Net 中快速批量給SQLite數(shù)據(jù)庫插入測試數(shù)據(jù),本文直接給出實例代碼,需要的朋友可以參考下2015-06-06
C#基于正則表達式刪除字符串中數(shù)字或非數(shù)字的方法
這篇文章主要介紹了C#基于正則表達式刪除字符串中數(shù)字或非數(shù)字的方法,涉及C#針對數(shù)字的簡單正則匹配相關操作技巧,需要的朋友可以參考下2017-06-06

