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

# エラー
```
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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561145/b3a2eeaa-f67b-a77b-a5a3-a4fef404a780.png)

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

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

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3536313134352f35336634313839392d353230382d396134622d623663342d3463383736646436323963392e706e67__913×591_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561145/4c41477f-5f45-91d2-65ed-b2a259cea9d9.png)

![Battle_-_monster-chess-0_-_WebGL_-_Unity_2020_3_20f1_Personal__Personal___Metal_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561145/8f0e603b-c2ee-c747-64e2-51a975a5e30f.png)

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

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

![websocket-sharp-master.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561145/ee6610d6-de1b-2d91-4a62-90b44cebe31d.png)

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

![websocket-sharp_–_Visual_Studio_Community_2019_for_Mac_と_Qiita.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561145/6f370ef1-ca38-18ae-815e-6ac0bc75d4e7.png)

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

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

![スクリーンショット_2022-03-27_0_27_47_png_と_Qiita.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561145/c7b3a1c2-e5e4-58b1-a462-36e9abf31270.png)

bin>Releaseにdllファイルが出来上がる。
![Release.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561145/54ae2991-333a-83e6-e885-45ba54420ee6.png)

# UnityのAssets/Pluginsフォルダに設置する。
![Plugins.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561145/82d711e8-c2cb-8734-c29b-c883ce035528.png)

エラーが増えた！！！

![Battle_-_monster-chess-0_-_WebGL_-_Unity_2020_3_20f1_Personal__Personal___Metal_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561145/ec350878-1933-4d36-41b8-7f86a3599f56.png)

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

設置したwebsocket-sharp.dllをとりあえず消す。
また新しいエラーが...
![Battle_-_monster-chess-0_-_WebGL_-_Unity_2020_3_20f1_Personal__Personal___Metal_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561145/a4cc8489-4005-7af9-2557-a14a66342d72.png)

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

![Battle_-_monster-chess-0_-_WebGL_-_Unity_2020_3_20f1_Personal__Personal___Metal_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561145/ab4be076-3fdb-0f21-590d-4872b9013b95.png)

エラー内容変わらず。

# 再度、ググる。
エラー文言＋Photonでググる。

https://forum.photonengine.com/discussion/16745/photonwebsocket-linking-issue-when-building-webgl-target

Photonの設定のチェック漏れ？
![Cursor_と_Battle_-_monster-chess-0_-_WebGL_-_Unity_2020_3_20f1_Personal__Personal___Metal_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561145/f1e22508-b6c5-beaf-c9b8-fe4d35af12e2.png)

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

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

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3536313134352f35336634313839392d353230382d396134622d623663342d3463383736646436323963392e706e67__913×591_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561145/f35b34c5-1fa0-3479-5bbe-fdb1cf701ddc.png)


エラーは出っぱなし。

プロジェクトのアセンブリ定義ファイルにWebsocketを追加してApplyしてみる。
![Battle_-_monster-chess-0_-_WebGL_-_Unity_2020_3_20f1_Personal__Personal___Metal_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561145/8f0e603b-c2ee-c747-64e2-51a975a5e30f.png)

エラーがなくなった！！
（ちょっと残ってるけどビルドはできそう）
![Battle_-_monster-chess-0_-_WebGL_-_Unity_2020_3_20f1_Personal__Personal___Metal_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561145/44dda37f-b6ea-ac2a-54c2-c0ce20b9decc.png)

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

初めに試した「websocket-sharp.dll」のバージョンを下げるのは
結果差し替えはできなかったが、そもそも.NET 3.5だったので意味がない作業ではあった。
![Battle_-_monster-chess-0_-_WebGL_-_Unity_2020_3_20f1_Personal__Personal___Metal_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561145/d1924c74-f374-cb28-a17c-a60e3533cdfc.png)

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