성엽이
KKIMSSI
성엽이
전체 방문자
오늘
어제
  • 분류 전체보기 (454)
    • :) (2)
    • C프로그래밍이론 (9)
    • C++프로그래밍 (64)
      • STL (1)
    • C# (2)
    • Visual studio 10.0 (9)
    • AT91SAM7S256 (21)
    • 논리회로 (14)
    • AVR2560 (11)
    • TCPIP (16)
    • NetWork (4)
      • Ubuntu Linux (2)
    • Assembly (21)
    • UNIX 프로그래밍 (6)
    • RFID 분석 (1)
    • Win32 API (7)
    • Cortex-M3 (4)
    • Unity (91)
    • Flutter (9)
    • OwnProject (11)
      • It's mine (5)
      • 마인드스톰 실습 (1)
      • 보고서 자료 (2)
      • RPi B+ (2)
    • ETC (25)
      • 상식 (3)
    • MFC (40)
    • PostgeSQL (18)
    • 영상제어 (6)
      • VFW_영상처리 (1)
    • Python (0)
    • Java (30)
      • SpringBoot (2)
      • Javascript (1)
      • JSP (13)
      • Spring (8)
    • Oracle (4)
      • SQL (3)
    • HTML (6)
      • Thymeleaf (1)
      • CSS (1)
      • Bootstrap (3)
    • IDE (1)
      • VS Code (1)
    • Android (2)
    • Privacy Policy (0)
    • MYSQL (2)
      • MariaDB (2)
    • AWS (5)
    • 개인공부 (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
  • 관리자
  • 글쓰기

공지사항

인기 글

태그

  • 문자열 나누기
  • Boot Code 분석
  • MFC
  • ARM Reverse Engineering
  • WINAPI

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
성엽이

KKIMSSI

Unity

[Unity] UniTask + Action + Lambda 고찰

2023. 5. 16. 11:38
  public static class UniTaskHelper {
    public static Action<T> Action<T>(Func<T, UniTaskVoid> asyncAction) {
      return (t1) => asyncAction(t1).Forget();
    }
  }

    Action<GameScene> _fooAction;

    void Awake() {
      _fooAction = UniTaskHelper.Action<GameScene>(OnSceneReady);
    }

    void OnEnable() {
      _sceneReadyEvent += _fooAction;
    }

    void OnDisable() {
      _sceneReadyEvent -= _fooAction;
    }
    
    async UniTaskVoid OnSceneReady(GameScene scene) {
      _logger.Info("Scene ready: " + scene);
      // await something
      await UniTask.Yield();
    }

 

https://github.com/Cysharp/UniTask/issues/329

 

How do you pass parameter types to a "UniTask.Action"? · Issue #329 · Cysharp/UniTask

How do you pass parameter types to a "UniTask.Action"? void OnEnable() { _loadSceneEvent.Register(UniTask.Action(OnLoadScene)); // this doesnt work, need to use regular "async void" callback or del...

github.com

 

UniTask 에서 지원하지않는 UniTask.Action<T> 사용해보기.

event Action<T> Callback 에 Lambda 를 사용해서 Parameter 를 전달받기 위해서 Func 를 이용하면 가능.

저작자표시 (새창열림)

'Unity' 카테고리의 다른 글

[Unity] 윈도우 데스크탑 인스톨러 만들기  (0) 2023.08.08
[Unity] RectTransformUtility 팁  (0) 2023.05.26
[Unity] Stencil Buffer 에 대해서  (0) 2023.04.26
[Unity] 커스텀 에디터 사용하기  (0) 2023.04.14
[Unity] Prefabs Variant 사용법  (0) 2023.04.14
    'Unity' 카테고리의 다른 글
    • [Unity] 윈도우 데스크탑 인스톨러 만들기
    • [Unity] RectTransformUtility 팁
    • [Unity] Stencil Buffer 에 대해서
    • [Unity] 커스텀 에디터 사용하기
    성엽이
    성엽이

    티스토리툴바