프로퍼티의 이벤트 바인딩

정선호·2023년 6월 16일
0

Unity Features

목록 보기
4/28

프로퍼티

프로퍼티는 선언한 변수의 GetterSetter로써 외부에서 접근할 수 있도록 하는 동시에 캡슐화를 지원한다.

다음과 같이 프로퍼티 내에 함수를 추가할 수도 있다.

class PropertyTest{

    private int score;  //field
    public int Scoore  // property
    {
    	get { return score; }  //get method
        set 
        { 
        	if( 0 < value && value <= 100)
            {
           		this.score = value; 
            }
        	
        }  //set method
    }
}

이를 바탕으로 프로퍼티 내에 이벤트를 추가하여, 프로퍼티를 통해 변수를 바꾸면, 이벤트 또한 발생시키게 할 수 있다.

[SerializeField] private UnityEvent<int> onCoinChanged;
[SerializeField] private UnityEvent<int> onDustChanged;

public int Coin
{
    set => onCoinChanged?.Invoke(value);
    get => _collection[_FindDataIndex(CollectionCode.Coin)].collectionCount;
}

public int Dust
{
    set => onDustChanged?.Invoke(value);
    get => _collection[_FindDataIndex(CollectionCode.Dust)].collectionCount;
}

이는 변수 값 변화에 따른 행동을 실시간으로 반영할 때 Update구문 대신 더 효율적으로 사용할 수 있다.

profile
학습한 내용을 빠르게 다시 찾기 위한 저장소

0개의 댓글