개발에서 중요한 것 중 하나는 반복을 줄이고, 의미 있는 단위로 코드를 나누는 것이다.
이러한 구조화를 가능하게 해주는 메소드와 구조체를 알아본다.
객체 지향 프로그래밍 언어에서 사용하는 용어로, C와 C++에서는 함수로, 파스칼에서는 프로시저라고 부르는 메소드에 대해서 알아보자.
메소드는 프로그램의 동작을 하나의 기능 단위로 나눈 것으로,
코드를 재사용하고 가독성을 높이며 유지보수를 수월하게 한다.
플레이어 점프, 데미지 계산, UI 갱신 등 게임 내의 행동 처리 대부분을 메소드로 구현한다.
메소드의 기본 구조는 다음과 같다.
[접근제한자]<반환형> <메소드이름>([매개변수들])
{
// 실행할 코드
return 값; // 반환형이 void가 아닐 경우
}
[접근 제한자]는 메소드에 접근할 수 있는 범위를 설정한다
주로 public
, private
, protected
등을 사용한다.
C#에서는 접근 지정자를 명시하지 않으면 자동으로 private
로 설정된다.
대상 | 디폴트 접근 지정자 | 설명 |
---|---|---|
클래스 멤버 (필드, 메소드 등) | private |
클래스 내부에서만 접근 가능 |
클래스 자체 (namespace 내부) | internal |
같은 어셈블리(프로젝트) 내에서 접근 가능 |
인터페이스 멤버 | public |
강제적으로 모두 공개 |
열거형(Enum) | public (사실상 내부 멤버도 공개) |
enum 항목은 외부에서도 접근 가능 |
Unity에서 일반적으로 사용하는
MonoBehaviour
스크립트들은 필드에 public
또는 [SerializeField] private
를
명시하지 않으면 인스펙터에 노출되지 않는다