프로퍼티란 속성이라는 의미를 가지고, 클래스안에서 변수를 선언 후 다른 클래스에서 사용을 하려면 Public을 붙여 줘야하는데 정보 은닉을 위해 private로 선언후 get,set 메소드를 지원하는 유니티 메소드를 사용해서 구현할 수 있다!
class 클래스 이름
{
데이터 타입 필드명;
접근한정자 데이터타입 프로퍼티이름
{
get
{
return 필드명;
}
set
{
필드명 = value;
}
}
}
이런식으로 구현을 하는데 프로퍼티의 get과 set은
get = 속성값을 반환 ( 따로 쓰면 읽기 전용)
set = 새값을 할당 하는데 사용 ( 따로 쓰면 쓰기 전용)
public class Test : MonoBehaviour
{
private int hp = 100;
const int maxHp = 100;
public int Hp
{
get
{
return hp;
}
set
{
hp = value;
if (hp > maxHp)
{
hp = maxHp;
Debug.Log("hp가 maxHp를 넘음");
}
else if (hp <= 0)
{
OnDie(); // 0이 되면 OnDie함수를 호출
}
Debug.Log("현재 hp : " + hp);
}
}
}