고도 Call_deferred
https://www.reddit.com/r/godot/comments/17yvwnp/in_which_cases_do_you_use_call_deferred/
Call_deferred
When you want to start a new independent call stack, so the function can run without stalling the current. And the current can await the functions result.
It runs the function on a new stack immediately after the current one. NOT at the end of the frame.
They start a new, immediate, call stack. Which resolves immediately after the current one. There is no waiting for a new process step, frame, or anything else.
If you defer a call in _ready, the new stack will start immediately upon resolution of the _ready cascade up/down the tree.
This means that the function from "call deferred" is being issued before the ready function is complete for every object in the scene.
비동기에 대해선 잘 모르지만
Call_deferred는 process() 중에 새 오브젝트를 만들 때 생길 수 있는 문제를 해결해준다.
_process 뒤에 _process.call_deferred 가 실행된다.
_ready에서 call deferred를 한다고해서 모든 _ready가 끝난 뒤에 실행되는 것이 아니니 주의하자.
- process 중에 오브젝트를 새로 생성해서 add_child를 할 때
- 피직스 프로세스나 프로세스 도중 모든 이터레이팅이 끝난후 실행되고픈 것이 있을 때
사용하도록 하자.
'Godot4' 카테고리의 다른 글
고도4 소코반 (1) | 2023.12.02 |
---|---|
고도4 플랫포머 (0) | 2023.11.28 |
고도4 메모리게임 (0) | 2023.11.27 |
고도4 앵그리버드류 (0) | 2023.11.26 |
고도4 플래피버드류 (0) | 2023.11.25 |