유니티 버전 - 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' 카테고리의 다른 글
SetValueWithoutNotify()을 이용한 드롭다운 옵션 변경 (0) | 2025.03.05 |
---|