난 유니티를 사용하면서 property(속성)가 있는 줄도 몰랐었다.
여러 에셋들의 소스코드를 까보면 자주 보이기도 하고, 공부해보니까 자주 쓰면 좋겠다 싶어서 글을 정리하기로 했다.
참고한 블로그
https://arainablog.tistory.com/102
https://itmining.tistory.com/34
1.Property(속성) 특징
1. C#에서 사용가능한 데이터 접근 방식 중에 하나이다.
2. get 속성 접근자는 속성 값을 반환 / set접근자는 새 값을 할당하는데 사용
3. set 속성 접근자의 value 키워드는 set 접근자가 할당하는 값을 정의할 때 사용
4. get은 외부에서 해당 프로퍼티에 접근하여 읽어야 하는 상황에서 호출
5. set은 외부에서 해당 프로퍼티에 접근하여 값을 할당하는 상황에서 호출
6. 유니티의 인스펙터창에서 보이지 않는다.
- 외부에서 클래스 변수에 값을 할당 할 때, 변수의 값이 변경되었을 때를 감지하여, 다른 함수나 동작을 실행하길 원한다.
- 해당 변수를 여러 곳에서 가져가서 조건을 사용하는 것을 편하게 하기 위해서 사용한다.
1.Property(속성) 사용방법
자동으로 구현되는 프로퍼티
- 프로퍼티를 사용해 클래스의 변수에 대해 감추고 사용하기 위함 / 코드가 간단함.
- private 변수를 생성하지 않고 프러퍼티 자체를 사용한다.
- 조건이 없고, 단순히 변수 값을 할당하거나 반환 용도
- get, set 접근자 안에 아무것도 쓰지 않으면 프로퍼티 그 자체를 사용할 수 있다.
간단한 사용 예시이다.
public class PlayerInfo
{
public string nickName {get; set;}
public int level {get; set;}
public int hp {get; set;}
public int mp {get; set;}
}
PlayerInfo playerinfo;
void Start()
{
playerinfo.nickName = "Simbble";
playerinfo.level = 26;
playerinfo.hp = 100;
playerinfo.mp = 50;
}
void Update()
{
if(Input.GetKeyDown(Keycode.E))
{
Debug.Log(playerinfo.nickName);
Debug.Log(playerinfo.level);
Debug.Log(playerinfo.hp);
Debug.Log(playerinfo.mp);
}
}
프로퍼티 사용
- 변수의 값이 개발자가 원하는 범위로 조건을 둘 수 있다.
- set 접근자 내에 변수가 변했을 때, 다른 함수나 동작을 실행할 수 있다.
- 클래스가 구현 또는 코드를 숨기는 동시에 값을 가져오고 설정하는 법을 공개적으로 노출할 수 있다.
using UnityEngine;
using ~~~~~~~~~~~;
public class Player : MonoBehaviour
{
private int hp;
public int PlayerHP
{
get
{
return hp; // 속성 값을 반환
}
set
{
if(value<10)
{
Debug.Log("해독제를 사용했습니다.")
}
else
{
hp = value;
}
}
void Start()
{
PlayerHP = 5; // 해독제를 사용했다는 디버그가 찍히겠죠.
// playerHP = 15; // 플레이어의 체력이 바뀌고 끝나겠죠.
}
}
}
'유니티 C#' 카테고리의 다른 글
유니티 C#) 생성자와 소멸자 (0) | 2023.01.26 |
---|---|
C# ) 스택(Stack), 힙(Heap) 간단 정리 (0) | 2022.07.26 |
유니티 C#) static은 무엇인가. (0) | 2022.07.24 |
유니티 C#) Dictionary사용법과 ContainsKey 정리 (3) | 2022.07.23 |
유니티 C#) MonoBehavior(모노비헤이비어) 정리 (0) | 2022.07.23 |