おれ、Unity2Dでゲーム作るんだ。

Unity2Dをメインに、覚書などを記事にしていきます。

UnityのC#とJSONの命名規則のすりあわせ

f:id:xev:20180315104859p:plain

キー名はスネーク?

Web APIを使ってると、返ってきたJSONのキー名がスネークだったりします。 よくあります。

で、C#のクラスのプロパティにスネークかぁ、キャメルにしたいなぁって事があって、 サーバーが変えろ! いやクライアントが合わせろ! 先にやったもん勝ち! とかそんなあらそいもあるとかないとか。

そんなときに、これを導入して、

www.newtonsoft.com

仏の顔をしてJsonProperty属性を使用します。

JsonProperty属性

JsonProperty属性は、プロパティ名とは別のキーを指定したい場合に設定します。

public class Person
{
    [JsonProperty("name")]
    public string Name { get; set; }
 
    [JsonProperty("age")]
    public int Age { get; set; }
}

これでみんな幸せ。

Unity - 出来ていたAndroidビルドが出来なくなったときに修正した場所(2箇所)

f:id:xev:20170712152423p:plain

ついこの間まで出来ていたAndroidのビルドが出来なくなった!?

で、原因が2つあったので

AndroidStudioのバージョンアップをしてSDK toolsの構造が変わった

AndroidStudioのバージョンアップ(2.3.3)を行ったところ、 SDKのパス正しく教えろってメッセージが出てくるように。。。

Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details. See the Console for details.

これは、AndroidStudioのバージョンアップでSDK toolsの構造が変わったのが原因みたい。 Android 25.3系アップデートっぽいので、

Android SDK Tools Revision 25.3.0 (Feb 2017) - Android Studio Project Site

構造が変わる直前のバージョン(Android SDK Tools 25.2.5)をダウンロードして解凍。

これを更新されてしまった下記フォルダと、差し替える。

C:\Users\<ユーザー名>\AppData\Local\Android\Sdk\tools

f:id:xev:20170712152551p:plain

ひとまず、これで1ステップ進む。

JavaのSDKのバージョンが古い

以下の様なメッセージを吐いてエラー

f:id:xev:20170712152811p:plain

Exception in thread “main” java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0

これは、原因は JAVAのSDKを1.7系を使っていたのが原因っぽく、UnityのPreferenceでSDKを1.8系にしてあげるとエラーが消えました。

f:id:xev:20170712152912p:plain

f:id:xev:20170712152849p:plain

以上2点、 アップデートしていたら新しくしすぎて、Unityが追いついてなかった。 めんどくさいので古いのを使い続けていたら、Unityに置いて行かれた。 バージョンアップも慎重にですね。