inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

start함수란?

778

빅맨

작성한 질문수 4

2

함수에서 start나 update 같은 기본 이벤트함수는 직접 정의하고 만드는 제작함수와는 근본이 다른건가요?

void TestFunc(){

    print("첫쨰줄");

    print("둘쨰줄");

}

void Start(){

   TestFunc();

}

위 예제 코드에서   TestFunc 함수의 중괄호 {}안에 TestFunc 함수를 정의하는 내용을 기재했고,

Start 함수의 중괄호 {}안에서 호출했는데, 

Start 함수 의 중괄호{} 안에서 호출하는 형태도 내가 함수를 만들때와 문법이 똑같아보여서

이또한 결국은 스타트 함수를 정의 하는 행위가 되는건가 하는 의문이 들어서요...

Start함수의 중괄호 안에 넣은 코드가 결국 Start 함수를 정의하고 만드는 행위가 되는건가요?

만약,다른곳에서 Start함수를 불러온다면, 방금 새로 정의한 내용이 호출되는건지...

아니면, 기본 내장된 이벤트함수는  내가 직접 만드는 함수들과 달리 중괄호안에 넣은 내용으로 함수를 정의하는게 아닌,

다른개념으로 생각해야 하는건지 궁금합니다.

제작함수에서 중괄호는 함수의 내용 만들기라면,  이벤트함수의 중괄호는 사용하는 내용이라는 개념 정도로 이해하면 될까요?

C# unity

답변 1

1

UDevApp

스타트 함수도 제작함수도 사실 함수의 구현부를 만든다는 것에서 동일합니다 문법 상으로는 동일하며 호출을 하는 부분이 다릅니다

스타트 함수는 저희가 구현하고 유니티에서 호출을 합니다 

제작함수는 저희가 구현하고 저희가 호출을 합니다

바로 나오는 제공함수는 유니티에서 구현하고 저희가 호출을 합니다

c# 문법상으로는 사실 이런 구분이 없습니다만 누가 구현하고 누가 호출하는지가 다르기에 이렇게 구분하여 설명하고 있습니다 

그래서 이 이벤트 함수,제공함수,제공함수의 구분은 누가 구현하고 누가 호출하는지에 따른 구분입니다다

사용상에 따른 구분입니다

더 추가하자면 Start();의 호출을 하는 이 문장은 유니티에서 내부적으로 호출을 진행합니다 

스타트가 실행되어야 할때 이걸 유니티가 내부적으로 Start(); 를 실행하여 호출하는 것입니다 그러므로  저희는 정확한  철자로 함수의 이름을 정하여 Start의 구현부를 스크립트 안에 적어야 동작합니다 

void Start(){

}

뒤로 가보면 함수의 구분이 실제로 나오는데요. 실제 c# 문법상으로 구분의 의미는 입출력의 유무에 따른 구분이라는 것이 c#에서 말하는 실제 함수의 구분입니다 

사실 이렇게 구분을 하는 것이 복잡해보일수도 있습니다만 구분을 해서 설명을 하고 수강하시는 분들이 이걸 이해를 해놓으면 그 전체를 가지고 한번에 이해할 수 있게 되리라고 생각해서 이렇게 구분을 해놓았습니다. 

정말 감사합니다 ^^

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

0

263

1

플레이 버튼이 없어요

0

758

1

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

0

376

2

연습문제파일

0

262

1

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

0

470

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

270

3

Instance와 variable

0

243

1

구조체 6번째 강의

0

190

1

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

1

343

1

인자와 매개변수

1

215

1

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

2

624

1

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

1

353

1

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

1

1226

1

출력만 있는 함수 관련 질문

1

422

2

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

0

235

1

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

0

321

2

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

0

364

1

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

0

263

1

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

0

230

2