Unity小时钟

文章目录

  • 前言
  • 一、制作时钟外观
    • 1.新建Unity项目
    • 2.制作时钟底座
    • 3.完善底座
    • 4.绘制指针
  • 二、让时钟动起来
    • 1.新建C#脚本
    • 2.实现指针转动
    • 3.加入连续转动功能
  • 总结


前言

本文实现了一个基于 Unity3D 和 C# 的小时钟qwq。


以下是本篇文章正文内容

一、制作时钟外观

1.新建Unity项目

Unity小时钟_第1张图片

2.制作时钟底座

Unity小时钟_第2张图片

3.完善底座

Unity小时钟_第3张图片

4.绘制指针

Unity小时钟_第4张图片

二、让时钟动起来

1.新建C#脚本

Unity小时钟_第5张图片

2.实现指针转动

Unity小时钟_第6张图片

3.加入连续转动功能

Unity小时钟_第7张图片

完整代码如下:

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Clock: MonoBehaviour
{
    const float degreesPerHour = 30f;
    const float degreesPerMinute = 6f;
    const float degreesPerSecond = 6f;

    public Transform hoursTransform, minutesTransform,secondsTransform;
    public bool con;

    void Update() {
        if (con)
        {
            updCon();
        }
        else
        {
            updDis();
        }
    }

    void updDis()
    {
        DateTime t = DateTime.Now;

        hoursTransform.localRotation =
            Quaternion.Euler(0f, t.Hour * degreesPerHour, 0f);
        minutesTransform.localRotation =
            Quaternion.Euler(0f, t.Minute * degreesPerMinute, 0f);
        secondsTransform.localRotation =
            Quaternion.Euler(0f, t.Second * degreesPerSecond, 0f);
    }
    void updCon()
    {
        TimeSpan t = DateTime.Now.TimeOfDay;

        hoursTransform.localRotation =
            Quaternion.Euler(0f, (float)t.TotalHours * degreesPerHour, 0f);
        minutesTransform.localRotation =
            Quaternion.Euler(0f, (float)t.TotalMinutes * degreesPerMinute, 0f);
        secondsTransform.localRotation =
            Quaternion.Euler(0f, (float)t.TotalSeconds * degreesPerSecond, 0f);
    }
}


总结

参考教程

以上就是今天要讲的内容,简单介绍了Unity小时钟的制作过程,也是记录下自己的学习和成长啦qwq Unity系列随缘更新qwq

你可能感兴趣的:(c#,unity,游戏开发,游戏引擎,游戏)