用Unity做一个钟表

来源:互联网 发布:方舟生存进化淘宝购买 编辑:程序博客网 时间:2024/05/16 20:47

上午上完Unity课,睡到下午4点多起床,做了一下这个闹钟,

主要是还是不理解呢。

网址在下面了。

虽然照着实现了,但是还是不理解内涵。


https://sanwen8.cn/p/26c97IR.html
 


难点在于指针位置的摆放,

还有相关计算

旋转的中心问题等等。


using UnityEngine;
using System;
using System.Collections;


public class ClockAnimator : MonoBehaviour {
    private const float
        hoursToDegrees = 360f/12f,
        minutesToDegrees = 360f/60f,
        secondsToDegrees = 360f/60f;
    public Transform hours, minutes, seconds;
    public bool analog;

// Update is called once per frame
void Update () {
      


        if (analog)
        {
            // currently do nothing
            //DateTime time = DateTime.Now;
            TimeSpan timespan = DateTime.Now.TimeOfDay;
            hours.localRotation =
                Quaternion.Euler(0f, 0f, (float)timespan.TotalHours * -hoursToDegrees);
            minutes.localRotation =
                Quaternion.Euler(0f, 0f, (float)timespan.TotalMinutes * -minutesToDegrees);
            seconds.localRotation =
                Quaternion.Euler(0f, 0f, (float)timespan.TotalSeconds * -secondsToDegrees);
        }
        else
        {
            DateTime time = DateTime.Now;
            hours.localRotation = Quaternion.Euler(0f, 0f, time.Hour * -hoursToDegrees);
            minutes.localRotation = Quaternion.Euler(0f, 0f, time.Minute * -minutesToDegrees);
            seconds.localRotation = Quaternion.Euler(0f, 0f, time.Second * -secondsToDegrees);
        }
    }
}

0 0
原创粉丝点击