【Unity3D自学记录】Unity3D之自制小钟表

今天来写一个小钟表,其实很简单,就运用到了欧拉角。

首先创建时钟、分钟、秒钟以及4个点(12点、3点、6点、9点)偷懒了~~没弄那么多点。

时钟、分钟、秒钟这三个父级的中心一定要注意,我们旋转的是父级的欧拉角。

(父级的中心在子级的顶点)

如图:

接下来我们来写代码,如下:

using UnityEngine;
using System.Collections;

public class Clock : MonoBehaviour {

    public Transform shi;
    public Transform fen;
    public Transform miao;

	// Use this for initialization
	void Start () {

	}

	// Update is called once per frame
	void Update () {
        Debug.Log("时"+System.DateTime.Now.Hour);
        Debug.Log("分"+System.DateTime.Now.Minute);
        Debug.Log("秒"+System.DateTime.Now.Second);

        //秒钟
        float miaonum=System.DateTime.Now.Second*6f;
        miao.eulerAngles = new Vector3(miao.position.x, miao.position.y, -miaonum);

        //分钟
        float fennum = System.DateTime.Now.Minute * 6f;
        fen.eulerAngles = new Vector3(fen.position.x, fen.position.y, -fennum);

        //小时
        float shinum = System.DateTime.Now.Hour * 6f;
        shi.eulerAngles = new Vector3(shi.position.x, shi.position.y, -shinum);
	}
}

所有的值都要 *6 ,因为一共60秒,一圈是360度,1秒就是6度。

写得比较简单啊。

大家不要见笑。。。

效果图:

时间: 2024-11-01 19:00:38

【Unity3D自学记录】Unity3D之自制小钟表的相关文章

【Unity3D自学记录】Unity3D显示NPC名称

using UnityEngine; using System.Collections; public class NPCName : MonoBehaviour { //主角对象 private GameObject player; //主摄像机对象 private Camera camera; //NPC名称 private string name = "我是NPC"; void Start() { //根据Tag得到主角对象 player = GameObject.FindGam

【Unity3D自学记录】可视化对照十多种排序算法(C#版)

在这篇文章中.我会向大家展示一些排序算法的可视化过程.我还写了一个工具.大家可对照查看某两种排序算法. 下载源代码 – 75.7 KB 下载演示样例 – 27.1 KB 引言 首先,我觉得是最重要的是要理解什么是"排序算法".依据维基百科.排序算法(Sorting algorithm)是一种能将一串数据按照特定排序方式进行排列的一种算法. 最经常使用到的排序方式是数值顺序以及字典顺序.有效的排序算法在一些算法(比如搜索算法与合并算法)中是重要的,如此这些算法才干得到正确解答.排序算法也

【Unity3D自学记录】Unity3D网络之Socket聊天室初探

首先创建一个服务端程序,这个程序就用VS的控制台程序做即可了. 代码例如以下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; namespace SocketServer { class Program { const int Port = 20000; //设置连接port static void Main(strin

转载 ---- 【Unity3D自学记录】代码获取隐藏游戏对象

http://blog.csdn.net/daijinghui512/article/details/34095553 很多人把游戏物体的active改成false后,用GameObject.Find()就找不到游戏对象了. 我来告诉大家一个巧妙的方法,借鉴的是雨松大神的方法~ 首先创建一个父级OBJ,OBJ的active不能为false 然后将我们隐藏的游戏物体放在OBJ下~ 如图: 代码如下: [csharp] view plain copy <span style="white-sp

【Unity3D自学记录】NGUI之UIButtonMessage长按

对UIButtonMessage进行修改 void OnPress (bool isPressed) { if (enabled) { if (((isPressed && trigger == Trigger.OnPress) || (!isPressed && trigger == Trigger.OnRelease))) Send(); } try { if (isPressed) { //按住 } else { //松手 } } catch (Exception e

【Unity3D自学记录】网络编程之TCP&amp;UDP的区别

TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接.一个TCP连接必须要经过三次"对话"才能建立起来,其中的过程非常复杂,我们这里只做简单.形象的介绍,你只要做到能够理解这个过程即可.我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:"我想给你发数据,可以吗?",这是第一次对话:主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在

【Unity3D自学记录】Unity3D之Url地址重定向(C#)

private string url; // Use this for initialization void Start () { HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("这里填写Url"); myHttpWebRequest.AllowAutoRedirect = false; HttpWebResponse myHttpWebResponse = (HttpWebRespon

【Unity3D自学记录】解决NGUI触发事件点透问题

在游戏开发或者虚拟现实开发的时候,会有人物操作的功能,点击地面人物进行行走操作,但是再点击界面按钮的时候,点击事件就触发不了了,这样就是点透,当然也有点击界面按钮同时触发了点地面行走的操作,一样也是点透 解决方法如下: void OnClick() { if (UICamera.hoveredObject != null) { //代码.. } } 其实还有一种方法,通过射线判断,但是我不太喜欢用(个人喜好问题,以及消耗问题) 方法如下: <span style="white-space:

【Unity3D自学记录】利用代码修改图片属性(Inspector)

这段时间一直都在打包资源,然后每次导入都要改图片的属性,真是麻烦,所以一直在寻找一键修改并且打包的方法. 终于让我找到了,太坑人了. 根据自己的需求改代码哦,相信大家都能看明白. 核心部分: TextureImporter ti = (TextureImporter)TextureImporter.GetAtPath(AssetDatabase.GetAssetPath(obj)); ti.textureType = TextureImporterType.GUI; ti.filterMode