버튼 OnClick에 async 메서드가 등록되지 않는 문제

2025. 3. 4. 21:52·코드 및 공부/UI

유니티 버전 - 6000.0.40f1

 

 

 

 

 

목차


  • 이유
  • 해결법

 

 

 

 

 

이유


유니티 UI 시스템은 void 반환 타입을 기대하기때문에 버튼 이벤트에는 async 메서드를 직접 등록할 수 없습니다

public async UniTask OnQuitGame()
{
  await Managers.UI.EnableTitleUI<TitleQuitGame>();
  // 인스펙터에서 OnClick() 설정 불가
}

 

 

 

 

 

해결법


OnClick()을 일반 void 메서드를 이용하도록 하고 .Forget() 이용하기

 

.Forget()은 Cysharp.Threading.Tasks 라이브러리의 확장 메서드로, UniTask의 실행 결과를 기다리지 않고 즉시 실행을 진행하는 "fire-and-forget" 방식입니다,이는 Unity의 버튼 OnClick 이벤트처럼 반환형이 void여야 하는 상황에서 async 메서드를 호출할 때 사용됩니다

 

public void OnQuitGame()
{
  Managers.UI.EnableTitleUI<TitleQuitGame>().Forget();
}

'코드 및 공부 > UI' 카테고리의 다른 글

Text Animator for Unity를 이용한 타자기 출력  (0) 2025.05.26
SetValueWithoutNotify()을 이용한 드롭다운 옵션 변경  (0) 2025.03.05
'코드 및 공부/UI' 카테고리의 다른 글
  • Text Animator for Unity를 이용한 타자기 출력
  • SetValueWithoutNotify()을 이용한 드롭다운 옵션 변경
ekrxjvpvj0110
ekrxjvpvj0110
유니티 개발 관련 자료
  • ekrxjvpvj0110
    ekrxjvpvj0110의 유니티 개발
    ekrxjvpvj0110
    • 전체 글 (75) N
      • 안드로이드 (1) N
        • 에셋 관리 (1) N
      • 코드 및 공부 (73)
        • 이론 (4)
        • 데이터 관리 (11)
        • 입력 관리 (9)
        • 최적화 (10)
        • UI (3)
        • 통신 (0)
        • 카메라 (3)
        • 오디오 (3)
        • 물리 (3)
        • 씬 (6)
        • 기타 (21)
        • 분류없음 (0)
  • 인기 글

  • hELLO· Designed By정상우.v4.10.3
ekrxjvpvj0110
버튼 OnClick에 async 메서드가 등록되지 않는 문제
상단으로

티스토리툴바