변수로 WaitForSecondsRealtime를 할당하여 사용하면 적용이 안 된다.

	private IEnumerator Co_TestText(Text _text)
	{
		WaitForSecondsRealtime _waitForSecondsRealtime = new WaitForSecondsRealtime(1);

		int _count = 0;
		_text.text = _count.ToString();

		while(true)
		{
			//yield return new WaitForSecondsRealtime(1);
			yield return _waitForSecondsRealtime;
			_count++;
			_text.text = _count.ToString();

			yield return new WaitFroEndOfFrame();
		}
	}

확인된 바로는 WaitForSecondsRealtime에 할당된 시간값이 0이 된 다음 다시 원래 할당된 값으로 바뀌는 처리 같은 게 없어서 0인 상태이기 때문에 한 번 대기한 다음에 지속적으로 동일한 시간만큼 대기하는 처리가 되지 않는 것으로 보인다.

 

Unity 2018.3 버전 이상에서는 waitTime 이라는 변수에 접근이 가능하도록 하여 시간값을 재할당하는 식으로 처리를 할 수 있게 바뀌었다.

 

참고

https://docs.unity3d.com/ScriptReference/WaitForSecondsRealtime-waitTime.html

https://forum.unity.com/threads/cant-reuse-waitforsecondsrealtime.539533/

 

Posted by Heon_Dev
,