LoginSignup
1
0

More than 1 year has passed since last update.

Unity/WebGL切り替え時、PhotonのWebSocketのエラー解決

Last updated at Posted at 2022-03-26

エラー

Assets/Photon/PhotonLibs/WebSocket/WebSocket.cs(18,11):
error CS0246:
The type or namespace name 'WebSocketSharp' could not be found
 (are you missing a using directive or an assembly reference?)

Battle_-monster-chess-0-WebGL-Unity_2020_3_20f1_Personal__Personal___Metal.png

「Photonで使用するアセンブリ定義ファイルがないよ」「WebSocketのが足りないよ」
ということらしい。
Photonは登録しているけど、足りないのか。

解決方法

Photon>PhotonLibs>WebSocket>websocket-sharp
Exclude Platform(除外するプラットフォーム)の「WebGL」のチェックを外してアセンブリ定義ファイルに追加する。

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3536313134352f35336634313839392d353230382d396134622d623663342d3463383736646436323963392e706e67__913×591_.png

Battle_-monster-chess-0-WebGL-Unity_2020_3_20f1_Personal__Personal___Metal.png

解決までの流れ

https://qiita.com/KoukiShimoya/items/7a65b9e6d7300f38bbf1
調べたらQiitaの記事がすぐ出たので試してみる。

https://github.com/sta/websocket-sharp
からダウンロード。

websocket-sharp-master.png

websocket-sharp.sln
をVisual Studioで開く。

websocket-sharp_–_Visual_Studio_Community_2019_for_Mac_と_Qiita.png

その後ビルドする必要がある。
手順は
https://note.com/hikohiro/n/n01007cb70c85
を参考にする。

  • Exampleのフォルダは削除
  • DebugをReleaseに変更してビルド

スクリーンショット_2022-03-27_0_27_47_png_と_Qiita.png

bin>Releaseにdllファイルが出来上がる。
Release.png

UnityのAssets/Pluginsフォルダに設置する。

Plugins.png

エラーが増えた!!!

Battle_-monster-chess-0-WebGL-Unity_2020_3_20f1_Personal__Personal___Metal.png

同じ名前であるよ?エラー

設置したwebsocket-sharp.dllをとりあえず消す。
また新しいエラーが...
Battle_-monster-chess-0-WebGL-Unity_2020_3_20f1_Personal__Personal___Metal.png

フォルダに直アップがよくなかったのか、Unityのプロジェクトにドラッグ&ドロップしてみる。

Battle_-monster-chess-0-WebGL-Unity_2020_3_20f1_Personal__Personal___Metal.png

エラー内容変わらず。

再度、ググる。

エラー文言+Photonでググる。

Photonの設定のチェック漏れ?
Cursor_と_Battle_-monster-chess-0-WebGL-Unity_2020_3_20f1_Personal__Personal___Metal.png

Exclude Platform(除外するプラットフォーム)にチェックがついている。
そうかこれを外せばいいのか。

[解決方法]Exclude Platform(除外するプラットフォーム)のチェックを外してアセンブリ定義ファイルに追加する。

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3536313134352f35336634313839392d353230382d396134622d623663342d3463383736646436323963392e706e67__913×591_.png

エラーは出っぱなし。

プロジェクトのアセンブリ定義ファイルにWebsocketを追加してApplyしてみる。
Battle_-monster-chess-0-WebGL-Unity_2020_3_20f1_Personal__Personal___Metal.png

エラーがなくなった!!
(ちょっと残ってるけどビルドはできそう)
Battle_-monster-chess-0-WebGL-Unity_2020_3_20f1_Personal__Personal___Metal.png

ビルドしてみる。できてたので一旦解決ということにしようと思う。

初めに試した「websocket-sharp.dll」のバージョンを下げるのは
結果差し替えはできなかったが、そもそも.NET 3.5だったので意味がない作業ではあった。
Battle_-monster-chess-0-WebGL-Unity_2020_3_20f1_Personal__Personal___Metal.png

まとめ

ふとWebGLで書き出してUnityRoomにアップしようかと思ったら、ハマった。
しかもPhoto入れっぱなしで使っていないのに...
Admobのエラーの解決に3日かかったのを反省し、(あれこれ触ったのが原因でもあった)
やったことはメモりながら作業してみた。
1.5時間ほどで解決。まだ実際にビルドはしていないので、この後もエラーと戦うのだろう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0