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

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

3-2 代碼實(shí)現(xiàn)
using System;
using UnityEngine;
public class Clock : MonoBehaviour
{
private GameObject HourHands;//時(shí)針
private GameObject MinuteHand;//分針
private GameObject SecondHand;//秒針
void Start()
{
HourHands = GameObject.Find("時(shí)鐘/時(shí)針");
MinuteHand = GameObject.Find("時(shí)鐘/分針");
SecondHand = GameObject.Find("時(shí)鐘/秒針");
}
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);
}
}
沒(méi)錯(cuò),就是這幾行代碼就實(shí)現(xiàn)了:

四、后言
代碼依舊延續(xù)簡(jiǎn)約風(fēng)格,不多寫一行代碼
整體思路也很簡(jiǎn)單,就是獲取到當(dāng)前時(shí)間,然后讓時(shí)針?lè)轴樏脶樲D(zhuǎn)到指定的角度即可。
到此這篇關(guān)于Unity3D應(yīng)用之時(shí)鐘與鐘表小組件的使用教程的文章就介紹到這了,更多相關(guān)Unity3D時(shí)鐘鐘表組件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
講解C#面相對(duì)象編程中的類與對(duì)象的特性與概念
這篇文章主要介紹了C#面相對(duì)象編程中的類與對(duì)象的特性與概念,OOP面向?qū)ο笳Z(yǔ)言相對(duì)C語(yǔ)言這樣面相過(guò)程的語(yǔ)言來(lái)說(shuō)具有類和對(duì)象以及方法這樣的特性,需要的朋友可以參考下2016-01-01
C#調(diào)用C類型dll入?yún)閟truct的問(wèn)題詳解
這篇文章主要給大家介紹了關(guān)于C#調(diào)用C類型dll入?yún)閟truct問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
C#使用StopWatch獲取程序毫秒級(jí)執(zhí)行時(shí)間的方法
這篇文章主要介紹了C#使用StopWatch獲取程序毫秒級(jí)執(zhí)行時(shí)間的方法,涉及C#操作時(shí)間的相關(guān)技巧,需要的朋友可以參考下2015-04-04
SQL Server存儲(chǔ)過(guò)程在C#中調(diào)用的簡(jiǎn)單實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于SQL Server存儲(chǔ)過(guò)程在C#中調(diào)用的簡(jiǎn)單實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SQL Server存儲(chǔ)過(guò)程具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
WinForm實(shí)現(xiàn)窗體最大化并遮蓋任務(wù)欄的方法
這篇文章主要介紹了WinForm實(shí)現(xiàn)窗體最大化并遮蓋任務(wù)欄的方法,涉及C#實(shí)現(xiàn)WinForm窗體全屏顯示的實(shí)現(xiàn)及調(diào)用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08

