写一个时钟
具体要点使用tranform.RotateAround方法来使用时针的旋转。通过System.Datetime.Now获取系统时间,然后添加一个闹钟功能具体代码
using UnityEngine;
using System.Collections;
using System;
using UnityEngine.UI;
public class clock : MonoBehaviour {
public GameObject second;
public GameObject min;
public GameObject hour;
public float minspped=60.0f;
public InputField timeInput;
bool isClock=false;
AudioSource myas;
// Use this for initialization
DateTime time ;
int sethour;
int setmin;
string[] str;
int lasttime;
void Start () {
DateTime time = System.DateTime.Now;
second.transform.RotateAround (Vector3.zero,Vector3.up,6.0f*time.Second);
min.transform.RotateAround (Vector3.zero,Vector3.up,6.0f*time.Minute);
hour.transform.RotateAround (Vector3.zero, Vector3.up, 30.0f * (time.Hour % 12)+time.Minute*0.5f);
InvokeRepeating("seCond",1,1.0f);
InvokeRepeating("Min",(60-time.Second)%60,60.0f);
myas = GetComponent<AudioSource> ();
lasttime = time.Hour;
}
// Update is called once per frame
void Update () {
time = System.DateTime.Now;
if (lasttime != time.Hour) {
myas.Play ();
lasttime = time.Hour;
}
if (isClock) {
setclock (int.Parse (str [0]), int.Parse (str [1]));
Debug.Log ("h:"+sethour+"s:"+setmin+" h:"+time.Hour+"s:"+time.Minute);
if (sethour == time.Hour&&setmin==time.Minute) {
myas.Play ();
isClock = false;
}
}
}
public void seCond()
{
second.transform.RotateAround (Vector3.zero,Vector3.up,6.0f);
}
public void Min()
{
min.transform.RotateAround (Vector3.zero,Vector3.up,6.0f);
Hour ();
}
public void Hour()
{
hour.transform.RotateAround (Vector3.zero,Vector3.up,0.5f);
}
public void setclock(int hour,int minute)
{
sethour = hour;
setmin = minute;
}
public void buttondowm()
{
isClock = true;
string s = timeInput.text;
str=s.Split (':');
}
}