-
유니티 프로그래밍 함수와 스코프 05게임 프로그래밍/유니티 2020. 9. 22. 22:04
유니티 프로그래밍에서 지난 시간까지 사칙연산과 복합연산자에 대해서 배웠습니다. 이번 시간에는 함수와 스코프의 내용입니다. 강의를 들으면서 정리하고 있습니다. 예시문제는 원의 둘레의 길이가 주어졌을 때, 원의 반지름의 길이를 구하는 식을 함수로 표현하고 이를 저장되어 있는 UnityEngine에서의 반지름을 구하는 식에서 사용하는 '제곱근'을 구하는 방법을 알아보겠습니다.
void
void Start() void Start()에서는 영어로 void는 공허라는 의미로 속이 비었다고 생각하시면 됩니다. 그리고 Start() 함수를 통해서 바로 시작하는 경우를 확인할 수 있습니다. 하지만 이 함수에는 return 함수가 없기 때문에 수식의 Scope를 사용하면 return 함수를 사용해서 값을 돌려주는 함수를 사용해야합니다.
원과 관련된 예제
원의 반지름 구하기 float 함수를 활용하여 radius를 활용한 원의 반지름을 구할 수 있습니다. 원의 둘레의 길이(sizeOfCircle)이 30이라고 가정하면 원의 반지름을 radius 라고 하고 pisms 3.14f;를 활용하여 3.14까지만 구하게 합니다. 그리고 나누기를 써준 다음에 Mathf.Sqrt(tmp)를 활용하여 제곱근 함수를 불러내어 수식을 완성합니다. 이를 마이크로소프트 비주얼 스튜디오에 커맨드+S 혹은 컨트롤+S를 사용하여 저장하고 이를 유니티 엔진에 반영시키면 다음과 같이 완성됩니다.
Debug.Log Debug.Log를 통해서 값이 출력되는 것을 확인할 수 있습니다. 오류가 나지 않도록 코드 작성에 유의합니다. 특히 소괄호() 혹은 중괄호{} 나 쉼표, 마침표, 세미콜론 등을 처음 코드 작성 시에는 빼먹을 확률이 높으니 이에 신경써서 작성합니다.
Mathf.Sqrt()
이 수식은 (.)과 같이 점 연산자를 활용해서 함수의 수식을 완성합니다. 점 앞의 내용에서 점 뒤의 내용을 가져온다는 것을 표시할 수 있습니다. 그리고 뒤의 소괄호를 통해서 어떤 내용을 가져오고자 하는지 서술하면 됩니다. Mathf는 수학에서 자주 사용하는 "미리 만들어진 함수"들 중에서 Sqrt()라는 제곱근을 불러와서 수식을 완성합니다.
유니티 프로그래밍을 가장 처음 실행하면 void Start() 윗줄에 Using UnityEngine 이라고 하여 UnityEngine에서 미리 만들어진 함수를 사용하는 것이 핵심입니다. 얼마나 자유자재로 함수를 불러와서 적재적소에 배치하여 코드를 짜는 것이 핵심이라고 볼 수 있습니다.
Scope
스코프는 일종의 확대경이라고 볼 수 있습니다.
위의 코드에서는 float radius 의 과정을 void Start()의 과정을 추가하면 오류가 납니다. 그래서 이 과정에서는 Scope의 특징이 잘 나타나는데 Scope 가 쓰이면 스코프 안의 과정은 인식하기가 어려워집니다. 그래서 start는 return 이 필요하지 않기 때문에 스코프 함수 내에서 return 을 해주고 이를 바탕으로 추출된 함수값을 활용하여 radius를 구하는 과정이었습니다.
다음시간에 이어집니다.
반응형'게임 프로그래밍 > 유니티' 카테고리의 다른 글
유니티 프로그래밍 분기문+반복문+배열 (0) 2020.09.26 유니티 형변환 + 조건문 06 (0) 2020.09.24 유니티 프로그래밍 사칙연산과 복합연산자 -04- (0) 2020.09.16 CS1002 에러 & CS1003 에러 해결하기 (0) 2020.09.13 변수와 함수의 이해 -03- (0) 2020.09.12