inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문

객체지향의 기본5(여러 클래스를 제작하는 관점)

유니티 콘솔화면에 나타난 내용 문의

해결된 질문

353

노원신

작성한 질문수 15

1

안녕하세요.

클래스와 객체의 개념을 어느 정도? 이해는 하고 있는데요.

오늘 강의의 콘솔 출력창 값에 질문이 있습니다.

먼저 이 앞장 강의에서 만들었던 Player object도 있고 이번 강의에서 만들었던 Enemy1, Enemy2 도 유니티에 존재하는 상황입니다.

콘솔창을 캡쳐해 보면,

위 세가지 모든 오브젝트에 대한 출력값이 나타나는데요.

그런데 출력되는 순서가 Enemy2 -> Enemy1 -> Player -> Enemy Script의 Update함수 안에 있는 발사

이런 순서인데 이게 정상인가요?

아님 다른 이유가 있는지 설명 부탁드립니다.

C# unity

답변 1

2

UDevApp

안녕하세요. 정상입니다. 위의 세줄의 경우 Start 에서 실행되는 문장이고요. 

발사의 경우 EnemyScript 에서 실행되는 문장입니다. 

이전장의 "유니티와 함수" 부분에서 "Update 이벤트 함수" 라는 곳에서 나온 게임루프가 동작하는데요.

각각의 객체가 Start 가 있고 Update 가 있습니다. 어떤 것이 먼저 실행될지는  정해져 있지 않지만 Start 가 실행이 먼저 되고 Update 는 그 후에 계속 프레임마다 실행됩니다. 

아래 그림에서 보시면요.

1 이 실행될때 현재 1-1이 실행되고 1-2 이 실행되고 1-3 이 실행됩니다. 자세히 보시면 플레이어가 제일 먼저 그려져 있는데 순서가 플레이어가 먼저 실행되지 않고 적이 먼저 실행됩니다. (그리고 다른 모든 오브벡트의 Start 도 실행됩니다. 어느것이 먼저 실행될지는 유니티가 정합니다. 그런데 이것이 문제가 되지 않습니다. 정 저희가 원하는 경우는 옵션에서 스크립트의 순서를 실행해줄수는 있습니다.  나중의 강의에 나옵니다.)

스타트가 다 실행되고 나면 2번의 업데이트가 실행됩니다. 이때도 실행되는 순서는 유니티가 정합니다. 예를 들어서 첫번째 업데이트의 프레임에서 2-1, 2-2, 2-3 이 실행됩니다. 

계속해서 다음프레임에서 다시 2-1,2-2, 2-3이 또 실행됩니다. 이제 업데이트는 계속 연속적으로 실행됩니다. 

그러므로 저 콘솔의 동작이 맞습니다. 혹시 궁금하시면 적과 플레이어에서 print(Time.timeSinceLevelLoad); 라는 항목을 출력해보셔도 됩니다. 현재 게임이 실행되고 나서의 프레임의 시간입니다. 

그래서 한프레임에서 순서대로 업데이트가 다 출력되고 나서 다음 프레임으로 넘어갑니다. 

콘솔 그림과 비교해보면 다음과 같습니다.

답변이 되었기를 바랍니다. 감사합니다. ^^

Part4 유니티로 세가지의 게임만들기 강의도 들을 수 있는건가요?

0

262

1

플레이 버튼이 없어요

0

757

1

전체 연습문제 다운방법, 현재 연습문제 파일이 깨져서 열립니다.

0

376

2

연습문제파일

0

262

1

중단점을 찾을수가 없습니다

0

469

1

10분 24초에 만약 b를 0으로 둘시, "나눗셈이 불가능"대신 attempt to divide by zero 오류가 뜹니다.

0

312

1

if문의 비교(10분56초~59초사이)

0

219

1

NullReferenceException을 기대했는데....

0

326

1

C#에서의 메모리 관리

0

273

1

Heap 과 Stack

0

303

1

앞선 강의에서 Instance와 연관 지어서

0

269

3

Instance와 variable

0

243

1

구조체 6번째 강의

0

190

1

제공 함수는 실제 구현하는 몸체가 없다

1

341

1

인자와 매개변수

1

215

1

코드에서 new GameObject를 실행했을 때 유니티 화면상의 상태 문의

2

621

1

멤버변수를 전역변수라고 생각해도 되는지요?

1

1225

1

출력만 있는 함수 관련 질문

1

422

2

문제 파일은 어디에 있나요?

0

234

1

제 윈도우용 visual studio에서는 코드행 앞에 아무것도 안찍힙니다.

0

319

2

혹 강의내용을 캡쳐해서 블로그에 공개해도 되나요?

0

364

1

비쥬얼 스튜디오에서 강의대로 입력했는데 콘솔창에 아무것도 안나타나네요.

0

262

1

저는 윈도우즈에서 모니터를 두개로 나눠 강의영상과 Unity작업창으로 나눠서 하고 있는데 무슨 얘긴지 하나도 모르겠어요

0

229

2

갑자기 파일을 추가하려면 과정을 설명해 주셔야 하는데 그냥 파일부터 추가하네요.

0

171

1