Move an object from start to end position depending on the progress of loadlevel..async

Hi,

I’m using loadlevel.async to load my game from the start screen. Whilst the level is loading I would like an object to be set to active which moves from a set start to finish position - but does this depending on the progress of the loading.
(So it kind of works like a progress bar, where a 20% fill is 20% loaded level – but instead I’d like the 20% fill to mean the object has moved 20% across this set distance.

It doesn’t have to be super exact - just roughly right.

However - I’m having two problems. The first is that in my console Debug.Log(async.progress) only ever reads 0, and then 1 on loading.
(I read online that if I multiply this by 100 this would sort out the issue of it rounding the float number, but I’m still not seeing any change.

Secondly: does anyone have any pointers on how I would achieve this, I’m a bit stuck!

	void OnSwipeUp()
	{
		StartCoroutine (LoadMainLevel());
	}

	public IEnumerator LoadMainLevel()
	{
		AsyncOperation async = Application.LoadLevelAsync(1);

		float t = async.progress;

		overlayTerrain.SetActive (true);

			overlayTerrain.transform.position = Vector3.Lerp(startPos, endPos, t);
	
		Debug.Log (async.progress *100f);
		yield return async;
	}
}

Best,
Laurien

private IEnumerator LoadScene(string sceneName) {
// Wait a single frame so the frame gets rendered (required if this method is called in Awake or Start)
yield return null;

    // Start the loading operation
    var loadingOperation = Application.LoadLevelAsync(sceneName);

    while(!loadingOperation.isDone) {
        overlayTerrain.transform.position = Vector3.Lerp(startPos, endPos, loadingOperation.progress);
        yield return null;
    }

    yield return loadingOperation;
}