반응형
728x170
델리게이트란
대리인이라는 의미로 메소드를 대신해서 호출하는 대리자 역할을 합니다.
델리게이트 장점
콜백 메소드를 구현할 때 효율적이다
메소드를 캡슐화하여 사용하여 개체 지향적이고 보안이 유지됩니다.
델리게이트 체인을 활용하여 하나의 델리게이트로 1개이상의 메소드를 연결시킬 수 있다.
결과 화면
마우스 클릭 시 delagate Action을 활용하여메서드를 호출합니다.
GameEvents 스크립트
public class GameEvents : MonoBehaviour
{
public event Action onTouchTrigger;
void Update() {
if (Input.GetMouseButtonDown(0)) {
if(onTouchTrigger != null) onTouchTrigger();
}
}
}
GameEvents스크립트에선 이벤트를 발생하는 코드를 기술합니다.
TouchAction 스크립트
public class TouchAction : MonoBehaviour
{
public Transform myParent;
public GameObject myPrefab;
private void Start() {
GameEvents events = GetComponent<GameEvents>();
events.onTouchTrigger += OnTouchEffect;
}
private void OnTouchEffect() {
Instantiate(myPrefab, Input.mousePosition, Quaternion.identity, myParent );
}
}
TouchAction 스크립트에선 발생한 이벤트에 대한 동작을 기술합니다.
GameEvents 스크립트에 액세스 하여 이벤트를 연결시키고
GameEvents events = GetComponent<GameEvents>();
events.onTouchTrigger += OnTouchEffect;
델리게이트 체인을 활용하여 1개의 델리게이트로 1개 이상의 메서드 연결이 가능합니다.
GameEvents events = GetComponent<GameEvents>();
events.onTouchTrigger += OnTouchEffect;
events.onTouchTrigger += OnTouchEffect2;
events.onTouchTrigger += OnTouchEffect3;
이벤트 함수에 대한 내용을 기술합니다.
private void OnTouchEffect() {
Instantiate(myPrefab, Input.mousePosition, Quaternion.identity, myParent );
}
마우스 클릭 지점에 깨짐 이미지를 생성하는 코드입니다.
반응형
그리드형
'유니티실습' 카테고리의 다른 글
유니티 Mathf Clamp 사용해보기 (0) | 2021.02.21 |
---|---|
유니티 스크립트 편집 툴 변경하기 (0) | 2021.02.17 |
유니티 UI 버튼 이미지 swap (0) | 2020.12.07 |
유니티 IsPointerOverGameObject 활용한 겹치는 오브젝트 구별법 (0) | 2020.11.25 |
유니티 객체 합치기 Merge (0) | 2020.11.23 |