인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Youngram님의 프로필 이미지
Youngram

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

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

작성

·

144

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
질문자

답변 감사합니다! 

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

네 다릅니다!

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

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

Youngram님의 프로필 이미지
Youngram

작성한 질문수

질문하기