unity coroutine 예제
코루틴은 방금 했던 것과 같이 시간 적 메서드에 광범위하게 사용됩니다. WaitForX 방법의 다양성은 자신의 용도가 있습니다. 코루틴은 게임이 동시에 실행되는 동안 자체적으로 실행되는 “측면” 프로세스를 실행하는 데도 사용됩니다. 예를 들어 플레이어가 한 지점에서 시작하는 동안 큰 레벨의 오프 스크린 부분을 로드하는 것이 유용합니다. 다음은 애니메이션이 부분적으로 완료될 때까지 기다리는 코루틴의 예입니다. 수율의 라인에서 변경 한 후, 그것을 저장하고 유니티에서 재생 버튼을 누를 수 있습니다. 함수를 호출하면 함수가 반환되기 전에 완료됩니다. 이는 함수에서 수행되는 모든 작업이 단일 프레임 업데이트 내에서 수행되어야 함을 의미합니다. 함수 호출은 시간 지남에 따라 절차 애니메이션 또는 이벤트 시퀀스를 포함하도록 사용할 수 없습니다. 예를 들어 개체가 완전히 보이지 않을 때까지 개체의 알파(불투명도) 값을 점진적으로 줄이는 작업을 고려합니다. 우리는 단지 배열을 전달할 수 없습니다 때문에 코루틴 내부에 할당 하면 외부 버전에 영향을 주지 않습니다 (매개 변수는 원래 참조의 복사본 것 이라고 생각). 코루틴에는 참조를 사용할 수 없습니다.
그래서 우리는 행동을 사용합니다. 일반적으로 코루틴을 사용하는 것이 많은 의미가있는 세 가지 상황이 있습니다 (머리 꼭대기에서 생각할 수 있음). 예를 들어, 우리가 최적화 할 수있는 이유와 장소를 보자. Coroutine 아래는 0.5 초를 기다린 다음 원하는 메서드를 호출합니다. “코루틴은 실행을 일시 중지하고 Unity로 제어를 반환한 다음 다음 프레임에서 중단된 위치를 계속 진행할 수 있는 기능과 같습니다.” 또한, 코루틴은 사용할 때 약간의 가비지 생성되므로 염두에 두어야 할 또 다른 이유입니다. 두 번째 예제는 문자열 매개 변수와 하나의 개체 매개 변수를 사용합니다. 이는 Unity가 IEnumerator와의 동루틴을 중지하기 전에 유용했습니다. 유일한 방법은 문자열로 호출하고 문자열로 중지하는 것이었습니다. 이 프로세스는 하나의 매개 변수 (또는 그 중 무리가 개체에 싸여 고통스럽다)만 허용합니다. 나는 더 이상 그것을 추천하지 않을 것이다. 마지막 줄에 좀 더, 당신은 심지어 비 MonoBehaviour에서 모든 개체에서 코루틴을 시작할 수 있지만 MonoBehaviour 멤버로 호출해야합니다.
Coroutine 개체의 수명은 MonoBehaviour 개체의 수명에 바인딩되므로 프로세스 중에 후자가 소멸되면 코루틴 개체도 소멸됩니다. 우리는 나중에 그 주제를 보여줄 것입니다. 모노애스.스타트코루틴이 코루틴을 반환합니다. 이 클래스의 인스턴스는 이러한 코루틴을 참조하는 데만 사용되며 노출된 속성이나 함수를 보유하지 않습니다.
記事を見てくれてありがとうございます!