728x90
[Unity] 델리게이트(Dlegate) & 이벤트(Event) 쉽게 접근하기. (tistory.com)
델리게이트라는 개념 ㄹㅇ 처음봄;
Delegate
함수 여러개를 동시에 실행시키고 싶을 떄 쓴다고 함...
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Base : MonoBehaviour
{
// 함수 여러개를 동시에 실행시키고 싶을대 delegate를 쓴다.
public delegate void ChainFunction(int value); // 매개변수를 int형으로 받는 델리게이트
ChainFunction chain;
int score;
int health;
public void SetScore(int value)
{
score += value;
Debug.Log($"점수가{value} 만큼 증가했습니다. 총 획득 점수 = {score}");
}
public void SetHealth(int value)
{
health += value;
Debug.Log($"플레이어의 체력이 {value} 만큼 증가했습니다. 총 체력 = {health}");
}
private void Start()
{
// 함수를 더해줄 때
chain += SetScore;
chain += SetHealth;
chain(5);
}
}
결과
Event
Observer 디자인패턴과 연관성이 있음
버튼클릭과 같은 사용자 조작으로 발생하거나, 속성 값 변경 등이 일어났을 때, 어떤 일련의 상태들의 변화가 필요한 구독자들에게 전달할 때 유용
1)델리게이트와 연동하여 사용하거나
2)구독자를 추가하여 사용
728x90