Time resolution is insufficient

I'm concerned with the use of float everywhere in Unity, but especially for the Time class. After 72 hours of game time, 1/60 of a second will be below truncation error. And if you need millisecond resolution then it takes just 4 1/2 hours until you can't resolve 1 ms. There are several approaches to fix this. You should look at some other game engines. My favorite is to return two floats: one is an integral number of seconds, and the second is just the fractional part.

You can use the DateTime class, or you could always just add up the time yourself using doubles:

var timer : double = 0.0;

function Update () {
    timer += Time.deltaTime;
}

If you want to do the seconds + fractions thing, that's simple too:

class Timer {
    var seconds : int;
    var fraction : float;
    function Timer (seconds : int, fraction : float) {
        this.seconds = seconds;
        this.fraction = fraction;
    }
}

private var seconds = 0;
private var secondsFraction = 0.0;

function Start () {
    InvokeRepeating("IncreaseSeconds", 1.0, 1.0);
}

function Update () {
    secondsFraction += Time.deltaTime;
}

function IncreaseSeconds () {
    seconds++;
    secondsFraction = 0.0;
}

function GetTime () : Timer {
    return new Timer (seconds, secondsFraction);
}