HOKUYOの側域センサーをUnityでシリアルポート通信するまでに出たエラー対応です。
前提
- Windows 11
- Unity2021.3.11f1
結論
Api Compatibility Levelがデフォルトだと.NET Standard2.1になっているので、ここを.NET FrameworkにすればSystem.IO.Portsなどが使えるようになります。
結論までの道のり
エラー1
C#サンプルをUnityから実行してみようと思うと以下のエラーが。
error CS0234: The type or namespace name 'Ports' does not exist in the namespace 'System.IO' (are you missing an assembly reference?)
エラー2
そこでこちらを参考に、System.IO.PortsをUnityにいれてみたが、以下のエラーが。
PlatformNotSupportedException: System.IO.Ports is currently only supported on Windows.
エラー3
.NETの設定どうなっているのか見てたところStandardだったので、もしやと思って.NET Framerworkにしてみたところ、以下エラーが。
error CS0433: The type 'SerialPort' exists in both 'System.IO.Ports, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' and 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
対応
エラー1対応で入れたdllがかぶっていることが問題なので、消したところ正常に実行できるようになりました。