Created
May 5, 2014 17:42
-
-
Save Ushio/7f849179b0d40b35954b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using UnityEngine; | |
using System.Collections; | |
public class ClockController : MonoBehaviour { | |
public Transform BackPanel; | |
public Transform LongLine; | |
public Transform ShotLine; | |
private Quaternion _backPanelDefalt; | |
private Quaternion _longLineDefalt; | |
private Quaternion _shotLineDefalt; | |
float remap(float value, float inputMin, float inputMax, float outputMin, float outputMax) | |
{ | |
return (value - inputMin) * ((outputMax - outputMin) / (inputMax - inputMin)) + outputMin; | |
} | |
// Use this for initialization | |
void Start () { | |
_backPanelDefalt = BackPanel.localRotation; | |
_longLineDefalt = LongLine.localRotation; | |
_shotLineDefalt = ShotLine.localRotation; | |
} | |
// Update is called once per frame | |
void Update () { | |
var now = System.DateTime.Now; | |
var hour = now.Hour; | |
float minute = now.Minute; | |
float sequenceMinute = minute + hour * 60; | |
if(isMadeInHeaven) | |
{ | |
sequenceMinute = (float)Time.time * 300.0f; | |
minute = sequenceMinute % 60.0f; | |
} | |
var angleLong = remap(minute, 0.0f, 60.0f, 0.0f, 360.0f); | |
var angleShort = remap(sequenceMinute, 0.0f, 60.0f * 12.0f, 0.0f, 360.0f); | |
var quaternionLong = Quaternion.AngleAxis(angleLong, Vector3.forward); | |
var quaternionShort = Quaternion.AngleAxis(angleShort, Vector3.forward); | |
var quaternionBackPanel = Quaternion.AngleAxis(-angleShort, Vector3.forward); | |
BackPanel.localRotation = _backPanelDefalt * quaternionBackPanel; | |
LongLine.localRotation = _longLineDefalt * quaternionLong; | |
ShotLine.localRotation = _shotLineDefalt * quaternionShort; | |
} | |
bool isMadeInHeaven = false; | |
void OnGUI() | |
{ | |
isMadeInHeaven = GUI.Toggle(new Rect(10,10,260,20), isMadeInHeaven, "Made in Heaven"); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment