유니티 get set 키워드는 유니티 C# 스크립트에서 프로퍼티(Property; 속성)를 구현할 때 사용합니다.

프로퍼티란?

Unity C#에서 프로퍼티(속성)는 클래스의 필드에 접근하기 위한 getter 및 setter를 제공합니다. 프로퍼티는 클래스의 필드 또는 기타 데이터에 대한 액세스를 제공하는 동시에 데이터 액세스 및 수정 방법에 대한 제어를 유지하기 위한 목적으로 사용됩니다.

예를 들어 getter 만 제공하고 setter를 제공하지 않을 경우, 해당 프로퍼티를 읽기 전용으로 만들 수 있습니다.

get 과 set 을 이용한 프로터티 구현법

그럼 실제로 get 과 set 을 이용하여 유니티 C# 코드에서 클래스에 프로퍼티를 구현하는 방법의 예를 보여 드리겠습니다.

public class MyClass
{
    // Private 필드 (변수)
    private int myInt;

    // Public 프로퍼티
    public int MyInt
    {
        get { return myInt; }
        set { myInt = value; }
    }
}

위 예제에서 MyInt 라는 프로퍼티는 private 변수인 myInt의 값을 가져오고 설정할 수 있도록 합니다. get 및 set 블록에는 이 프로퍼티에 액세스(get)하거나 수정(set)할 때 실행되는 코드가 포함되어 있습니다.

일단 이렇게 클래스 안에 프로퍼티를 지정해 놓으면, 다른 스크립트에서 필드(예; public 변수)를 사용하는 것처럼 프로퍼티의 이름을 사용할 수 있습니다.

MyClass myClass = new MyClass();

// MyInt 프로퍼티 값에 엑세스
int value = myClass.MyInt;

// MyInt 프로퍼티에 값을 지정
myClass.MyInt = 10;

퍼블릭 필드(변수)가 아닌 프로퍼티를 사용하는 이유

Unity C#에서 퍼블릭 필드가 아닌 프로퍼티를 사용하는 데에는 몇 가지 이유가 있습니다.

캡슐화

프로퍼티를 사용하면 클래스의 데이터를 캡슐화할 수 있습니다. 즉, 데이터에 액세스하고 수정하는 방법을 제어할 수 있습니다. 데이터가 설정되기 전에 유효성을 검사하거나 수정하려는 경우 또는 데이터에 액세스하거나 수정할 때 다른 작업을 수행하려는 경우에 필요합니다.

가독성

프로퍼티는 클래스의 데이터에 액세스하기 위한 보다 사용자 친화적인 인터페이스를 제공하여 코드를 더 읽기 쉽게 만들어 줍니다. 예를 들어 Health라는 속성은 healthPoints라는 필드보다 읽기에 더 직관적일 수 있습니다.

성능

코드가 복잡한 경우 프로퍼티 접근자(get 또는 set)를 사용하는 것이 퍼블릭 필드보다 더 효율적일 수 있습니다. 이는 프로퍼티 접근자 코드가 프로퍼티에 액세스하거나 값을 수정할 때만 실행되기 때문입니다.

더 공부할 자료

유니티 C# 스크립트 작성에 대해 보다 심도 있는 공부를 원하시면 다음 링크를 체크해 보시기 바랍니다.

유니티 C# 프로그래밍 연습 (ebook)

“막 유니티를 배운 주니어 게임 프로그래머로서 자신의 힘으로 첫번 째 게임을 만들고 싶지만 어디서부터 시작해야 할지 막막한 분 계신가요? 이 책을 읽어 보세요. 간단한 게임이지만 게임 구현 전체 프로세스를 자세한 설명과 함께 제공합니다. 동영상 예제까지 들어 있어요!”

더 공부할 자료 - 개발 능력 다양화를 위한 학습의 필요성

유니티 엔진의 대안으로서, 인디 개발자들에게 선풍적인 인기를 끌고 있는 엔진이 바로 고도 엔진입니다. 혹시 고도 엔진을 배워 보려고 하신다면, 다음의 온라인 강의를 체크해 보시기 바랍니다.

초보자를 위한 고도엔진 게임 개발 입문