오늘도 어김없이 만들고.
스피어 오브젝트를 만들고 위치를 리셋시켜줍니다.
스크립트도 만들고 스피어에 붙여줍니다.
public class RotateAround : MonoBehaviour
{
[SerializeField, Range(5f, 50f)] private float speed = 10f;
[SerializeField, Range(0.5f, 5f)] private float radius = 1f;
private float angle = 0f;
private void Update()
{
angle += Time.deltaTime * speed;
Debug.Log(angle);
if (angle > 360f) angle = 0f;
float x = Mathf.Cos(angle * Mathf.Deg2Rad);
float y = Mathf.Sin(angle * Mathf.Deg2Rad);
transform.position = new Vector3(x,y,0f) * radius;
Debug.Log(System.DateTime.Now.TimeOfDay.TotalSeconds); // 현재시간이 초로 나옴
}
}
미션 : 시계 만들기
먼저 실린더로 납작하게 만들어서 동그랗게 만들어줍니다. 그리고 머테리얼을 만들어 구분이 쉽게 하게하고
Clock 이란 이름을 뺴고 백그라운드로 만든다음 밑에 초침을 만듬.
그리고 시간 알아볼수있게 0 3 6 9 시간을 박아주고
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Clock : MonoBehaviour
{
private float secends = 0;
private float minute = 0;
private float hour = 0;
private void Start()
{
DateTime StartDate = DateTime.Now;
//Debug.Log(System.DateTime.Now.TimeOfDay.TotalSeconds);
Debug.Log(StartDate);
secends = StartDate.Second;
Debug.Log(secends);
minute = StartDate.Minute;
Debug.Log(minute);
hour = StartDate.Hour;
Debug.Log(hour);
if (hour > 13)
{
hour = hour - 12;
}
//0.25
//24시간, 360도 0도 ~ -360도
transform.eulerAngles = new Vector3(((hour * -15)-90), -90,90);
}
}
clock 에 넣어뒀으나 생각해보니 분도 많들어야해서 파일 제목을 hourClock로 바꾸고 분을 따로 만들어주었다.
최종 코드
SecendsClock.cs
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SecondClock : MonoBehaviour
{
private float second;
private void Update()
{
test();
TimeNow();
SecondRotate();
}
private void SecondRotate()
{
transform.eulerAngles = new Vector3((-second * 6)-90, -90, 90);
}
private void TimeNow()
{
DateTime Time = DateTime.Now;
second = Time.Second;
}
private void test()
{
float totals = (float)System.DateTime.Now.TimeOfDay.TotalSeconds;
Debug.Log("초" + totals);
Debug.Log("분" + totals / 60);
Debug.Log("시" + totals / 60 / 60);
}
}
minutClock.cs
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class minuteClock : MonoBehaviour
{
private float minute = 0;
private void Update()
{
TimeNow();
SecondRotate();
}
private void SecondRotate()
{
//24시간, 360도 0도 ~ -360도
transform.eulerAngles = new Vector3(((-minute * 6)-90), -90, 90);
}
private void TimeNow()
{
DateTime Time = DateTime.Now;
minute = Time.Minute;
}
}
hourClock.cs
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class hourClock : MonoBehaviour
{
private float hour = 0;
private void Update()
{
TimeNow();
SecondRotate();
}
private void SecondRotate()
{
transform.eulerAngles = new Vector3(((hour * -15) - 90), -90, 90);
}
private void TimeNow()
{
DateTime Time = DateTime.Now;
hour = Time.Hour;
if (hour > 13)
{
hour = hour - 12;
}
}
}
그럼 현재시각이 따단 하고 나온다.