シアトル生活はじめました

20年以上すんだ東海岸から西海岸に引っ越してきました。MicrosoftのUniversal Storeで働いてます。

Unity3D用のC# ライブラリーと.NET Frameworkのバージョン。設定は3.5ですよ、3.5!

この数週間で集中的にゲームの新サーバーを作り直してるんだけど、APIはRESTFul、サーバーからの通知はWebSocket、の予定でUnity3DのクライエントにロードできるC# バインディングのライブラリも同時進行で作ってた。

はじめる前に調べりゃ良かったんだけど、.NET Frameworkの4.x で使えるHttpClientがとっても便利で(特にRESTのHTTP動詞を使い分けたりJsonペイロードシリアライズしたりするのに)、4.5を前提に突っ走ってた・・

WebSocketにはSignalR、前に使ったときからバージョンアップして今は2.0。NuGetでパッケージダウンロードしてサンプルが動くまでに15分とかからず意気揚々とGit commmit しながら「進んでる進んでるw」とご満悦w

ふと、「ところでUnity 3D (というかMono)がサポートしてる.NET Frameworkのバージョンって当然いつも遅れてる、4.5使ってもいいよね~?」知らべたら・・

ダメです。今んとこ、3.5までです (><)

SignarlR、使えません。1.0でも4.0が必要。さらにHttpClientも使えません。前のWebClientに戻して、抽象化は自分でやりましょう。APIのエンドポイント一つ一つに対して作り直さなきゃならんです ...orz

ということでプロジェクトのターゲット.NET Framework を3.5に設定し直してリビルトする・・とうぜん参照エラーの山。それはつまり#ifdefとコメントアウトの山。せめてもの救いはタスク・パラレル・ライブラリーを多用してなかった(まだ非同期プログラミングの理解が甘いから避けてただけ、という噂)のでそこらへんの致命傷はない。