Performance question: updating a clock

So I adapted the code to create an analog clock from here:

https://unity3d.com/learn/tutorials/modules/beginner/scripting/simple-clock

which was very useful. I went with a clock without a hand for ‘seconds’ (so only ‘hours’ and ‘minutes’ ar shown) but it got me thinking, now every update cycle the rotation will have to be recalculated whereas in reality this would have to happen only once a minute.

Could this really be an issue (my target platform is Android btw) or is the rotation of an object such a small thing it’s not worth fussing about? If not, would I have to use InvokeRepeating?

I think it depends on how much you have going in your game, as well as how you want the clock to operate. Normally it’s probably not a huge deal to have it in Update, but if your game has a lot going on, it could help a little bit to only update when needed since it’s mobile.

The rate you choose to update will also depend on how smooth you want the hand movement to be. If you want them to move smoothly between the minutes, then you’ll need to choose a rate of probably every second or so. If you want the style where the minute hand snaps between the positions, then once per minute.

As for how to do this, both InvokeRepeating and Coroutines would work.

float clockUpdateRate = 60f;

	void Start()
	{
		InvokeRepeating("UpdateClock", 0f, clockUpdateRate);
	}
	
	void UpdateClock()
	{
		//do stuff
	}

Or:

float clockUpdateRate = 60f;

	void Start()
	{
		StartCoroutine(UpdateClock ());
	}

	IEnumerator UpdateClock()
	{
		while(true)
		{
			//do stuff
			yield return new WaitForSeconds(clockUpdateRate);
		}
	}