2023. 12. 30. 10:46, Unity
[Serializable]
public class ButtonClickedEvent : UnityEvent
{
}
public bool interactable = true;
[SerializeField]
private ButtonClickedEvent m_onClick = new ButtonClickedEvent();
private Animator animator;
private bool blockInput;
public ButtonClickedEvent onClick
{
get { return m_onClick; }
set { m_onClick = value; }
}
위와 같은 형태의 코드를 접해서, 이 경우 getter와 setter 를 사용하는 형태이기 때문에 이와 같은 형태의 코드에 대한 이해를 돕기 위해서 해당 내용에 대해서 검색해보고 그 내용을 첨부해둔다.
getter와 setter의 사용을 조금 더 익숙하게 만들자.
gpt
위의 코드는 C#에서 프로퍼티(Property)를 정의하는 방법 중 하나입니다. 프로퍼티는 클래스의 필드(멤버 변수)에 간접적으로 접근할 수 있게 하는 방법 중 하나로, 데이터 캡슐화(Data Encapsulation)를 촉진하고 객체 지향 프로그래밍의 기본 원칙 중 하나인 정보 은닉(Encapsulation)을 구현합니다.
public ButtonClickedEvent onClick
{
get { return m_onClick; }
set { m_onClick = value; }
}
여기서:
onClick
은 프로퍼티의 이름입니다.ButtonClickedEvent
는 프로퍼티가 반환하는 데이터 타입입니다.m_onClick
은 프로퍼티에 대응하는 private 필드(멤버 변수)입니다.
Getter (Get 메서드):
get { return m_onClick; }
get
은 프로퍼티의 값을 반환하는 데 사용되는 키워드입니다.return m_onClick;
은onClick
프로퍼티가 호출될 때 private 필드인m_onClick
의 값을 반환합니다.
Setter (Set 메서드):
set { m_onClick = value; }
set
은 프로퍼티에 값을 할당하는 데 사용되는 키워드입니다.m_onClick = value;
는onClick
프로퍼티에 값을 할당할 때 private 필드인m_onClick
에 값을 저장합니다.
사용 예시:
// 객체 생성
var myObject = new YourClass();
// 프로퍼티 값 읽기
ButtonClickedEvent clickEvent = myObject.onClick;
// 프로퍼티 값 쓰기
myObject.onClick = new ButtonClickedEvent();
프로퍼티를 사용하는 주된 이유는 다음과 같습니다:
- 캡슐화 (Encapsulation): 프로퍼티는 클래스 내부의 상세한 구현을 숨기고, 외부에서 간결하게 값을 읽거나 쓸 수 있게 합니다.
- 접근 제어 (Access Control): Getter와 Setter를 통해 프로퍼티의 읽기 전용 또는 쓰기 전용을 설정할 수 있습니다.
프로퍼티를 사용함으로써 객체의 내부 상태에 대한 접근을 조절하고, 객체의 데이터를 보호하며 유지보수성과 코드 가독성을 향상시킬 수 있습니다.
'Unity' 카테고리의 다른 글
c# 전처리 지시문에 대하여. (0) | 2024.01.06 |
---|---|
AudioSource의 재생과 ObjectPooling에서 Invoke 를 사용하는 방법과 coroutine을 사용하는 방법에 관하여. (0) | 2024.01.01 |
유니티 개발 환경에서 UNITY_EDITOR 와 DEBUG 환경에서만 동작하는 형태의 코드를 작성하는 방법. (0) | 2023.12.29 |
UnityEvent 를 이용해서 subscribe 하고 Invoke를 통해서 모든 구독한 메서드들을 실행시키는 형태의 코드 . (0) | 2023.12.28 |
Sprite Atlas , Batch , Draw Call (0) | 2023.12.14 |
Comments, Trackbacks