• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

Start()와 Update()

21.05.12 08:38 작성 조회수 179

0

안녕하세요

 Start()함수의 시작 타이밍(?)에 대해서 여쭤보고 싶어서요

항상 게임이 시작하면 호출되는 함수라고 생각을 했는데 강사님께서 게임오브젝트가 메모리에 올라가면 한번 호출 된다고 하셨잖아요.

이 말은 메모리에 올라가는 순간이 다르면 각각의 Start() 함수의 호출 시기도 다르다는 말이죠?

그럼 Update()의 경우에도, 최초의 호출 타이밍이 각 게임오브젝트마다 달라지겠네요?

음.... 그렇다면, 희박할 것 같긴한데 서로 다른 게임오브젝트의 Update() 호출 타이밍 때문에 엉키거나 하는 일은 발생하지 않나요?

답변 1

답변을 작성해보세요.

0

안녕하세요 

https://www.inflearn.com/questions/186513

여기에서 설명이 있는데 한번 보시면 좋을 것 같습니다. 더 자세하게 설명이 되어 있는데 우선 짧게 말씀드리면 다음과 같습니다. 

예를 들어서 다음과 같이 실행되는데 플레이가 있고 적1이 있고 적 2가 있으면 

왼쪽의 스타트1 이 실행될때 1-1 1-2 1-3 이 실행됩니다. 그런데 1-1,1-2,1-3의 순서는 정해져 있지 않습니다. 

Update 도 마찬가지로 2-1,2-2,2-3이 다 실행되는데 현재 프레임에서 실행되고 나서 다음프레임으로 넘어갑니다. 

그래도 이게 다 실행되고 나서 왼쪽의 Update 가 실행됩니다. 위의 링크 보시고 한번 만들어보시기 바랍니다.  이런 것도 작지만 만드는 것에 속하니까요. ^^ (보고 만들어보시고 안보고도 만들어보세요)

이것들의 순서를 정해줄수는 있는데 현재  플레이어는 PlayerScript 일 테고 적은 EnemyScript 일것입니다. 

옵션상에서 스크립트 오더(Script Order)라는 것이 있어서 PlayerScript 가 먼저 실행될지 EnemScript 가 먼저 실행될지를 정해줄수는 있습니다. 

Edit - Project Setting - Script Excution Order 로 들어가서 오른쪽 하단에 있는 버튼을 눌러 스크립트를 추가해주고 순서를 위아래로 조정해줄수 있습니다.

감사합니다. 좋은 하루 되세요 ^^