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() 중에 새 오브젝트를 만들 때 생길 수 있는 문제를 해결해준다. 

 

https://twitter.com/gnumaru/status/1717880163847835799

 

 

_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