• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

start함수란?

20.08.05 23:15 작성 조회수 540

2

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

void TestFunc(){

    print("첫쨰줄");

    print("둘쨰줄");

}

void Start(){

   TestFunc();

}

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

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

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

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

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

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

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

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

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

답변 1

답변을 작성해보세요.

1

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

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

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

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

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

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

사용상에 따른 구분입니다

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

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

void Start(){

}

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

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

정말 감사합니다 ^^