I made a day-night script, and wish to make a method in it which is called every frame to get the 24 hour time based on it’s rotation, but I tried for about a week and had no luck. (Also does anyone know how to add stars?) Here’s my code so far:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class DayNight : MonoBehaviour {
public float MinutesInOneDay = 1.0f;
public Text DisplayMins;
public Text ActualMins;
public static string CurrentDayTime="00:00";
float timer;
float turnSpeed;
// Use this for initialization
void Start () {
timer = (transform.rotation.x / 60.0f) * 360;
}
// Update is called once per frame
void Update () {
UpdateLights ();
turnSpeed = 360.0f / (MinutesInOneDay * 60.0f) * Time.deltaTime;
transform.RotateAround(transform.position, transform.right, (-1)*turnSpeed);
checkTime ();
}
void UpdateLights(){
Light l = GetComponent<Light> ();
if (isNight ()) {
if (l.intensity > 0.0f) {
l.intensity -= 0.05f;
}
} else {
if(l.intensity < 1.0f) {
l.intensity += 0.05f;
}
}
}
bool isNight() {
bool c = false;
if (timer > (MinutesInOneDay * 60.0f)) {
c = true;
}
return c;
}
void checkTime(){
float rot=float.Parse(transform.eulerAngles.x.ToString());
//print (rot.ToString());
int currMinutes = (Mathf.RoundToInt(rot/0.25f));
print ("currMinutes: "+(currMinutes).ToString());
int currHours = 25-(int.Parse(Mathf.Floor(rot/15).ToString()));
int currDisplayMinutes=currMinutes-(currHours*60);
CurrentDayTime = currHours.ToString() + " : " + currDisplayMinutes.ToString();
DisplayMins.text= "Time: " + CurrentDayTime;
ActualMins.text="currMinutes: " + currMinutes.ToString();
}
}