본문 바로가기

대리자3

Call Back 하나의 함수를 다른 함수 실행의 인자로 전달한다. 구현하고자 하는 기능에 따라서 전달 받은 함수의 호출 시점을 지정할 수 있다.기본적인 Call Back 구현using UnityEngine;public class Test : MonoBehaviour{ private delegate void Example(); private Example example = null; private void Start() { example += ExampleA; } private void ExampleA() { }}위의 코드는 매우 간단히 구현된 Call Back이다.‘저게 Call Back이라고?’라는 의문이 들 수 있다."저게 대리자랑 다른 것이 있는건가요?"위의 .. 2024. 12. 2.
대리자 활용 대리자를 통해서 다양한 기능을 편리하게 구현 가능하다.예시참조 줄이기예시 1"Score가 100점이 넘을 때 Particle의 PlayParticle 메서드를 실행한다."대리자를 사용하지 않은 경우public class GameManager//Singleton{ private int score = 0; public Particle particle; public int Score { set { score = value; if(score > 100) { StageClear(); } } } public void StageClear() { particle.PlayParticle; }}//직접 객체를 가져와서 PlayParticle 메서드를 호출public class Partic.. 2024. 11. 19.
대리자 Delegate메서드를 참조하는 객체로, 참조하는 메서드의 입력 매개변수와, 반환 타입을 포함한다델리게이트는 명시적으로 정의되어야 하며, 호출하려는 메서드의 입력 매개변수와 반환 타입을 가져야 한다.반환값은 마지막으로 호출된 메서드가 돌려준 값을 받는다, 이전 메서드들의 반환값은 폐기된다.모든 대리자는, 대리자 체인을 만들 수 있다Func반환 타입이 void가 아닌 0 ~ n개의 매개변수인 메서드를 포함하는 제네릭 델리게이트이다여러 개의 메서드를 한 번에 실행시킬 수 있다Action반환 타입이 void인 메서드를 위해 설계된 제네릭 델리게이트이다여러 개의 메서드를 한 번에 실행시킬 수 있다Lamda원하는 기능의 메서드를 직접 선언하지 않고도 만들 수 있다대리자를 간단하게 만들 수 있다콜백함수에서 인자로 .. 2024. 4. 23.