나는 coroutines를 좋아합니다. 그것들은 자기 유지 코드와 같지만 문제는 화합의 틀에서 특정 시간에 호출된다는 것입니다. this에 따르면 대부분의 코 루틴은 업데이트 후 애니메이션 전에 호출됩니다. 내부 애니메이션 업데이트 후 장면 렌더링 전에 호출 할 수있는 코 루틴 형식 시스템을 갖고 싶습니다. 이것은 애니메이션 이후 3D 모델 변환을 편집하기 때문입니다 (애니메이션에 의존하지 않음). 이 작업을 수행하는 방법? 나는 C#에서 일하고있다.늦은 업데이트에서 Coroutine을 (를) 호출하는 방법
0
A
답변
2
귀하가 직접 제공 한 링크에 설명되어 있기 때문에, 불가능합니다. 엔진은 작동 방식대로 작동하지만 "스크립트 수준"에서는 변경할 수 없습니다.
그러나 당신이 할 수있는 일은 coroutine을 사용하기를 원한다면, "코드 실행 준비"를하고, 그 작업을 LateUpdate()
으로 남겨 두는 것입니다.
(이것은 검증되지 않은 것에 따라 좀 의사 코드), 당신도이 있지만,
bool hasToUpdate = false; //class variable
private void LateUpdate() {
if (hasToUpdate == false) { return; } //I don't like "!" or leave "{}"
//do the stuff you want to do between 'game logic' and 'rendering'
//the thing you most probably do now in your coroutine code
hasToUpdate = false;
}
private void YourCoroutine() {
//if happened what you want/there was the expected
//user interaction, yield returned, etc, set class variables
//to the proper value (if there's anything like that), etc:
//i.e. move out values from coroutine code to class
//level and set calculated values you need to set, then:
hasToUpdate = true;
}
는하지만 원하는이 방법은 당신이 원하는 경우, 당신의 코 루틴 작업이 정확하게 실행하고 정확하게 방법 같은 것을해야이를 달성하기 위해 일해야한다, 그것은 나에게 "조금 해키"를 느낀다.
어쨌든. 코드가 있거나없는 특정 문제없이 더 많이 이야기하기는 어렵지만 도움이 되었기를 바랍니다. 건배.
제안 해 주셔서 감사합니다. 그것은 당신의 대답을 바탕으로 나에게 아이디어를 주었다. – Darnell
@ 다넬 매우 환영합니다. 프로젝트와 함께 행운을 빌어 요 :) –