Catlike学习笔记(1.1)-使用Unity实现一个钟表

发布时间:2020-06-28 10:28:22 作者:snatic
来源:网络 阅读:512

最近发现『Catlike系列教程』觉得内容真的很赞,感觉有很多地方涉及到了我的知识盲点,如果真的可以照着做下来一遍的话应该收获颇丰。因为教程很长所以逐字翻译不太可能了(主要是翻译的太差)。基本上就是把实现的思路记录下来最后甩一个 「Github Repo」这样就可以了。理论上来说第一篇比较简单,感兴趣的同学可以移步「原文链接」

PART 1 概述

实现一个钟表的话我们的目标就是

PART 2 制作场景

大家都是 Unity 熟手了所以具体制作流程就不讲了,博主自己也没仔细看就按照自己想法做了一个差不多的,具体思路就是多设一个层级然后父节点只旋转就可以把指针转到相应的位置而不需要同时调整 Rotation 和 Position。如果不是很懂的话可以回到「原文地址」里面有更详细的做法,或者到我的「Github Repo」下载下来看看。

Catlike学习笔记(1.1)-使用Unity实现一个钟表

PART 3 写脚本控制指针

首先建立一个新的 MonoBehaviour 脚本比如说 ClockController.cs 之类的,把时针分针秒针的 Transform 的引用拖到脚本里,然后开始设置各个指针的位置。

那么众所周知表盘的360度被分割成12块所以每一块也就是每个小时占据了 360 / 12 = 30 度。同理每分钟占据了 360 / 60 = 6 度,每秒钟也是。那么直观来说就是这样写。

void Update()
{
    _hourArm.localEulerAngles = new Vector3(0, DateTime.Now.Hour * 30, 0);
    _minuteArm.localEulerAngles = new Vector3(0, DateTime.Now.Minute * 6, 0);
    _secondArm.localEulerAngles = new Vector3(0, DateTime.Now.Second * 6, 0);
}

然而运行一下会发现时针和分针都是笔直的指向其所在的时间。。如下图所示

Catlike学习笔记(1.1)-使用Unity实现一个钟表

好吧现在刚好七点钟貌似看不出来,总之就是需要在比如 6:30 的时候时针应该指向 6 和 7 之间。所以这个度数需要再加上一点偏移,变成下面这样。

void Update()
{
    var hour = DateTime.Now.Hour;
    var minute = DateTime.Now.Minute;
    var second = DateTime.Now.Second;
    var milisecond = DateTime.Now.Millisecond;
    _hourArm.localEulerAngles = new Vector3(0, hour * 30 + minute  / 60f * 30f, 0);
    _minuteArm.localEulerAngles = new Vector3(0, minute * 6 + second / 60f * 6f, 0);
    _secondArm.localEulerAngles = new Vector3(0, second * 6 + milisecond / 1000f * 6f, 0);
}

就可以轻松实现文章里的各种平滑移动之类的~

Catlike学习笔记(1.1)-使用Unity实现一个钟表

PART 4 总结

没有完全按照「原文」中的写法来写好像这样会更简洁一点,然后大家应该也会更容易理解,不过作者的主要用意可能是想展示 coroutine 之类的吧不管那些了~总之大家可以进入「Github Repo」查看全部代码和运行 Demo。


原文链接:https://snatix.com/2018/06/06/019-gameobject-and-scripts//

本文由 sNatic 发布于『大喵的新窝』 转载请保留本申明

推荐阅读:
  1. 子网划分,我自己看的以前的小小白笔记,不用点进来
  2. linux高性能服务器读书笔记之高级I/O函数

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

unity catlike 基础教程

上一篇:Asp.net母版页引用JS/CSS 路径问题

下一篇:如何对php7进行性能优化

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》