TimeSince

Here’s a little utility script for Unity. Since I made it I’ve used it a few times in my prototype, so thought I’d share.

It’s basically a way to get the time since something happened, made to be a member of a class/component. It’s so simple that I’m guessing it already exists in a form that I’ve missed.

public struct TimeSince 
{ 
	float time; 
	
	public static implicit operator float( TimeSince ts ) 
	{ 
		return Time.time – ts.time; 
	}

	public static implicit operator TimeSince( float ts ) 
	{ 
		return new TimeSince { time = Time.time – ts }; 
	} 
}

It’ll act like a float, but it’ll change over time.

TimeSince ts; 

void Start() 
{ 
	ts = 0; 
}

void Update() 
{ 
	if ( ts > 10 ) 
	{ 
		DoSomethingAfterTenSeconds(); 
	} 
}

It’s a struct so it doesn’t create garbage.

1 Comment

  1. Shinevision says:

    That really looks like the “millis()” function when playing with embedded devices like the Arduino (UNO)

    ( https://www.arduino.cc/reference/en/language/functions/time/millis/ )

    it counts the amount of millisecond that have passed after the Microcontroller started up.

    Awesome!

Leave a Reply