유니티 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)

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