Skip to content

Instantly share code, notes, and snippets.

@Ushio
Created May 5, 2014 17:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Ushio/7f849179b0d40b35954b to your computer and use it in GitHub Desktop.
Save Ushio/7f849179b0d40b35954b to your computer and use it in GitHub Desktop.
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