• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

Arrow스킬 공격에서 함수 흐름에 대한 질문 드립니다.

20.10.24 01:17 작성 조회수 87

0

스페이스를 누르면 코루틴 함수로 Arrow프리팹을 생성하는데

이때 제가 생각하는 코드의 흐름 순서는

Managers.Resource.Inistatiate("Creature/Arrow"); 

ArrowController의 Init함수

ArrowController ac = go.GetComponent<ArrowController>();

ac.Dir = _lastDir;

ac.CellPos = CellPos;

이런 식으로 돼야할 거 같은데, 디버그를 해보니

Init 함수가 나중에 실행되더라고요.

Arrow프리팹이 Instantiate되면 그에 딸려있는 컴포넌트인 ArrowController의 Init함수가 다음으로

호출될거 같은데,  Instantiate의 호출과 실제 Gameobject가 생성되는 시점이 약간 다른건가요??

답변 2

·

답변을 작성해보세요.

0

Youngram님의 프로필

Youngram

질문자

2020.10.25

답변 감사합니다! 

0

네 다릅니다!

프로젝트에서 Init은 Start에 넣어놨으니,
결국 Start 호출 시점이 언제냐에 관한 문제입니다.
그런데 결과적으로 Start는 우리가 강제로 호출하는게 아니고,
유니티에서 자체적으로 프레임 관리를 해주면서 호출하니
Instantiate과 별개로 다음 프레임에서 호출된다고 보는게 맞습니다.

https://docs.unity3d.com/Manual/ExecutionOrder.html