Skip to content

add NativeCallbacks Class to avoid depending on UnityEngine#68

Merged
teach310 merged 5 commits intodevelopfrom
feature/interface_aot
Nov 5, 2023
Merged

add NativeCallbacks Class to avoid depending on UnityEngine#68
teach310 merged 5 commits intodevelopfrom
feature/interface_aot

Conversation

@teach310
Copy link
Copy Markdown
Owner

@teach310 teach310 commented Nov 5, 2023

Background

DocFXでドキュメントを生成する際に対象のスクリプトがUnityEngineへの参照を含んでいる場合には
Unityがプリコンパイルしたdllを取得できないとエラーになる。

従ってGitHub Action上でUnityEngineに依存せずにドキュメントを生成するためにはUnityEngineの参照を消したい。

そして

AOT.MonoPInvokeCallbackはUnityEngineに依存している。(using UnityEngineがなくても)

Description

  • AOT.MonoPInvokeCallbackアトリビュートを持つメソッドをNativeXXCallbacksに移動
  • インタフェースを切って直接依存しないようにする
  • ServiceLocatorで依存性注入
  • 使っていないusing UnityEngineを削除

これによってNativeXXCallbacksと依存性注入する役割のInitializerを除けばUnityEngineに依存しなくなる。

クラス名について

NativeXXHandlersやNativeXXEventHandlersも候補だった。
が、イベントハンドラよりはCallbacksのほうがイメージに近かったためこちらを選択。
ただし、メソッド名が「RegisterHandlers」なためそこの不一致があまり気持ちよくない。
優先度は低いため保留する。

Test

自動テストが動くことを確認したのみ

teach310 added 5 commits November 4, 2023 22:03
## なぜこのクラスを作る必要があったのか
NativeCentralManagerProxyがAOT.MonoPInvokeCallbackを参照しないようにするため。

これを参照してしまうと、DocFXを使う際にUnityEngineを参照してしまう
@teach310 teach310 merged commit 96726c6 into develop Nov 5, 2023
@teach310 teach310 deleted the feature/interface_aot branch November 5, 2023 05:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant