Photon Fusion SDK v2がUnityのAssetStoreで公開され、早速使ってみよということでRPCのコードを書いていると謎(ではない)Exceptionが発生してしまうようになってしまった。解決するまで意味がわからなかったので、同じ問題に直面した人が同じようにハマらないように記録を残しておきます。
対応方法
RPCで呼び出すメソッド名にはprefixかsuffixでRPC(大文字小文字不問)を付ける。
例:RPC_Method とか MethodRpcとか
エラー内容
以下のような感じで他にも15個(合計18個)のExceptionが表示された。ここの3つ目が重要だった。
Fusion.CodeGen.ILWeaverBindings: /(省略)/Assets/Photon/Fusion/CodeGen/Fusion.CodeGen.cs(3522,0): error Exception thrown when weaving Assembly-CSharp
Fusion.CodeGen.ILWeaverBindings: (0,0): error Fusion.CodeGen.ILWeaverException: Failed to weave behaviour (省略)
Fusion.CodeGen.ILWeaverBindings: (0,0): error ---> Fusion.CodeGen.ILWeaverException: System.Void (省略)(System.String): name needs to start or end with the "Rpc" prefix or suffix
その他
- 最初のExceptionで検索すると Weaver Exception when load the Fusion Application Loop example がひっかかり、ここから調査を始めてしまった。Exception全体を眺めてから着手するべきだったなと反省
- Photon Fusionのチュートリアルもやっていたのだが、Hostモードはsuffix、Shareモードはprefixだったため、どっちでも大丈夫ではなく、どちらでなくても大丈夫だと勘違いしてしまった