UnityでJsonを扱う

UnityでJsonを扱うにはいくつかライブラリがあるようです。
生存日記 | UnityのJSONパーサ
この中でJSON ObjectLitJSONを扱ってみました。

(2014.06.28 追記 : NGUIにもJsonを扱うNGUIJsonがあった

JSONObjectのライセンスはLGPL2.1と書いてあるんですが、DLしたものには特に明記はなく、Asset Storeに並んでいるものも特に明記はしていないのでこちらが適応されると思っていいんでしょうか…
LitJSONの方はパブリックドメインなので問題なく自由に使えるようです。
Continue…

拡張メソッド

組み込みのクラスやライブラリのクラスを拡張したいときに使える拡張メソッドというのがある。
staticなクラスを作りそこにあるメソッドがまるで自身のクラスのメソッドのように扱える。
staticクラスのメソッドになるので、自身のプライベートなメソッドやプロパティにはアクセスができない。

例えば
A だと
###
#A#
###
のように自身の文字列を囲みの文字に変えるよう機能を拡張する場合は

static class StaticStringExtensions {
	/**
	 * 「#」で文字を囲む。
	 */
	public static string BorderSharp(this string s) {
		string border = "";

		for (int i = 0; i < s.Length + 2; ++i) {
			border += "#";
		}

		string blockStr = "";
		blockStr = border + "\n";
		blockStr += "#" + s + "#" + "\n";
		blockStr += border + "\n";

		return blockStr;
	}
}

使い方は

static class StaticStringExtensions {
using UnityEngine;

// テストクラス
public class StringTest : MonoBehaviour {
	public void Start() {
		Debug.Log("ABCDEFG".BorderSharp());
		Debug.Log(StaticStringExtensions.BorderSharp("HIJKLMN"));

		Debug.Log("OPQRSTU".BorderLine());
	}
}

自身の作ったクラスなんかであればpartialというキーワードを付けたクラスを作るとそのクラスを拡張できる。Objective-Cでいうところのカテゴリの様な感じでしょか?