개발일지/unity 2

yield return

yield를 알려면 IEnumertor/IEnumerable을 알아야 한다. IEnumertor는 컬렉션에서 값을 반환하는 것이고, IEnumerable이 그 값이다. public interface IEnumerator { object Current { get; } bool MoveNext(); void Reset(); } 지금은 foreach를 사용하기 때문에 이 인터페이스를 구현하여 사용하는 것은 권장되지 않는다. 그렇지만 unity에서 yield return을 사용하기 때문에 그 개념은 알고 있는 것이 좋다. yield return은 IEnumertor/IEnumerable의 간단한 표기이다. 그래서 직접 IEnumertor/IEnumerable을 구현할 필요가 없다. yield return은 비동..

개발일지/unity 2022.02.07

무한 달리기 게임 알고리즘

무한 달리기 게임은 대표적으로 3가지 방법을 쓴다. 1. 캐릭터는 가만히 있고, 배경이 움직인다. 2. 캐릭터가 움직이며 지나온 구역을 지우고 새로운 구역을 만든다. 3. 캐릭터가 움직며 전에 만든 다리를 재활용한다.(이 경우 위의 방법보다 더 빠른 속도가 나온다.) 2번째의 핵심 알고리즘은 for문을 사용하여 생성하거나 update문 안에 yield return을 사용하여 계속 생성한 후 지나온 길은 삭제하거나 보이지 않게한다 3번째의 핵심 알고리즘은 캐릭터가 지나온 거리가 지나는 막대의 최고 x좌표보다 클 경우 큐로 저장해놓은 다리를 마지막에 다시 사용하는 알고리즘이다.

개발일지/unity 2022.01.21