Unityでラムダ式

日常にラムダ式を使いたい時ってありますよね?

UnityでHttpアクセスを行って
終わり次第コールバック関数を実行して欲しい時とかありますよね?

そういう時は
Activeクラスが使えます。

using System;
using System.Collections;
using UnityEngine;

public class HttpClient
{
      // シングルトン作り方
      private static HttpClient singleton = new HttpClient();
      public static HttpClient Singleton
      {
            get { return HttpClient.singleton; }
      }
      private HttpClient() {
      }

      // WWWという引数を持つをActiveクラスを渡している。
      public IEnumerator Get(string url, Action<WWW> okAction, Action<WWW> ngAction)
      {
            WWW www = new WWW(url);

            while (!www.isDone) { yield return null; }

            if (!string.IsNullOrEmpty(www.error))
            {
                  ngAction(www);
            }
            else
            {
                  okAction(www);
            }
      }
}

こう使います。

StartCoroutine( HttpClient.Singleton.Get( "https://www.ichikara.co.jp/",
                  (www) => {
                        Debug.Log(www.text);
                  },
                  (www) => {
                        Debug.Log(www.error);
                  }));

ちなみにActiveクラスは返り値なしで、
Funcクラスは返り値ありみたいです:)

C#のラムダ式はAction・Funcと一緒に理解を深めるとヨロシイようで - 銀の弾丸
ラムダ式っぽいのはActive、Funcクラスのシンタックスシュガーみたいですね。
あまいあまい。