2023. 12. 28. 22:59, Unity
public UnityEvent onOpen;
public UnityEvent onClose;
위와 같은 형태로 UnityEvent 로 선언된 onOpen, onClose 등이 있을때,
public void Close()
{
onClose.Invoke();
if (parentScene != null)
{
parentScene.ClosePopup();
}
if (animator != null)
{
animator.Play("Close");
StartCoroutine(DestroyPopup());
}
else
{
Destroy(gameObject);
}
}
이와 같은 형태로 onClose.Invoke(); 처럼 Invoke() 를 통해서 해당 이벤트를 subscribe 한 메서드들을 실행시킬 수 있다.
이와 관련된 gpt 참고 내용을 첨부한다.
`Invoke()` 함수는 C#에서 메소드나 대리자(Delegate)를 호출하는 데 사용되는 메서드입니다.
여기서 `onClose`는 아마도 이벤트나 델리게이트로 정의된 변수일 것입니다. 이렇게 정의된
델리게이트나 이벤트는 다른 부분에서 구독(subscribe)되어 해당 이벤트가 발생할 때 실행될
메서드를 추가할 수 있습니다.
`onClose.Invoke()`는 등록된 모든 메서드를 호출하는 것입니다. 이렇게 하는 이유는 해당
이벤트나 델리게이트에 등록된 모든 메서드가 이벤트 발생 시 실행되도록 하기 위함입니다.
즉, `onClose` 이벤트에 연결된 다양한 메서드들이 있을 것이고, `Invoke()`를 통해 한 번에
모든 메서드를 실행시키는 것입니다.
이렇게 하면 `Close` 메서드가 실행될 때, `onClose` 이벤트에 등록된 모든 메서드가
실행되고, 그 후에 다음 로직이 실행됩니다. 이렇게 이벤트를 통해 외부에서 로직을 추가할 수 있게
되므로, 코드의 유연성과 확장성을 높일 수 있습니다.
'Unity' 카테고리의 다른 글
getter 와 setter의 사용에 대하여. (0) | 2023.12.30 |
---|---|
유니티 개발 환경에서 UNITY_EDITOR 와 DEBUG 환경에서만 동작하는 형태의 코드를 작성하는 방법. (0) | 2023.12.29 |
Sprite Atlas , Batch , Draw Call (0) | 2023.12.14 |
유니티 Game view controller bar 에서, Low Resolution Aspect Ratios (0) | 2023.12.14 |
유니티 코드 난독화 방법에 대해서 도움이 될만한 블로그 글 (0) | 2023.12.12 |
Comments, Trackbacks