Summer!」では、Assetの作者様がご自身の作られたAssetを紹介したり、とても便利だけれどもまだ有名でないAssetを紹介したり、有名なAssetの有用な使い方を紹介する素敵な記事が多いのではないでしょうか。今回はちょっと雰囲気を変えてお送りします。最初に言っておきます。(バージョン0.2、2014/08/02時点)」は微妙でした。エラーが起きなくなったメソッドもあったのですが、いくつかのメソッドではエラーがおきました。今後のバージョンアップで改善はされるかもしれません。上手に扱うことができる構文、ライブラリ、メソッド」です。LINQのメソッドを使って、コードが非常に短く簡潔に読みやすくなる例を一つだけ紹介します。みなさんがRPGなどを作る際に使えるコードですよ。}}こんなList<Player>型のpartyがあります。();partyの要素の中で、一つでもHpが0以下の(死んでいる)ものがあるかどうか調べるコードを書いてみます。教会で復活させるキャラクターがいるかどうか調べるときに使いそうですね。}}このコードをLINQを使って書きかえます。0);7行のコードが1行になってしまいました!短く、簡潔ですね!LINQに慣れていないうちは、奇妙に見えてしまうかもしれません。LINQを理解すると、LINQで書いたコードは短いだけでなく、何をしたいのかが非常に読みやすいのです。LINQ、最高ですよね!みなさんLINQ使いましょう!LINQは便利なんだが、Unity+iOSだとさて、そんな便利なLINQですがちょっと困ったことがあります。Unityは様々なプラットフォーム向けにゲームを開発することが可能ですね。ゲーム専用機、WebPlayer、各種モバイル端末など本当に多くのプラットフォームに向けて開発することが可能ですね。そんな中で、iOS向けのゲームを開発している方も多いのではないでしょうか。実はUnityで作ったゲームをiOSで動かす場合、AOT(Ahead-Of-Time)コンパイル関連にまつわるエラーが実行時に発生してしまうことがあります。そのエラーがLINQのメソッドを使っている際にも発生してしまうのです。これが結構厄介なんです。エディター上では落ちないのに、iOSの実機ではエラーになること。「このメソッドはエラーで落ちますよ!」ではなくて、「このメソッドのこのオーバーロードを構造体で呼ぶとエラーになりますよ!」という感じで条件が複雑なんですよね。1個だけ例をあげます。}}下記のコードはrecordListの要素のScoreプロパティの値の平均値を求めるコードです。これはiOSだとエラーになります。record.Score);エラーログはこんな感じです。Qiitaに投稿しています。興味ある方は、よかったら読んでください。【Unity】Average、Max、Min、Sum便利ですよね!けれど、【LINQ】FirstOrDefaultとかLastとかLINQ便利!けどUnity+iOSで落ちることがある、その条件と回避策ListからDictionary作る時もLINQを使おうぜ!ILookupも便利だぜ!Unity+iOSにおいて、値型のOrderByがエラーになる。その回避方法を考えて、原因を予想してみた。条件次第でエラーが起こるLINQのメソッド呼び出しはありますが、大抵それを迂回するLINQ書き方があります。Games社が作成した、カテゴリー「スクリプト」のAssetです。2014年8月28日の現時点では、価格は$5になっています。現時点でのバージョンは0.2です。(最新情報はこちらを確認してください。)以下、こちらのAssetのページよりAssetの紹介文の抜粋です。device.iOS上でもAOT関連のエラーが起きないLINQの互換メソッドのライブラリーですね!自分はこんなのを待っていたのです!使い方LINQを使う際、次のようなSystem.Linqのusingディレクティブを書くと思います。iOSを使う場合は、System.LinqをLinqToolsに変えます。ここ!あとは、普通にLINQのメソッドを呼び出すだけです。record.Score);すばらしい!エラーがおきません。}}上のようなRecordClassを使った下のようなMaxメソッドは、普通のLINQだとiOSでエラーになってしまいます。--aot-only.あれ、エラーが発生してしまいました!あれ、エラーが起きてしまいました!あれ、エラーが...(大切なことなので3回いいました。iOSでもエラーになってしまうようです。ちなみにAverageメソッド以外にも、構造体でのLast、LastOrDefault、Single、SingleOrDefaultは修正されていて、ちゃんと実行できました。(エラーに関して、詳しくはこちら)ToDictionary、ToLookupメソッドのエラーはなおっていないようです。(エラーに関して、詳しくはこちら)まとめLINQは非常に便利です。C#を書くのにLINQを禁じられるのは大変厳しいものがあります。残念ながら、Unity+iOSではいくつかのLINQのメソッドはエラーになってしまいます。iOS」を見つけた時は、非常に嬉しかったのをよく覚えています。その後、MaxメソッドやToDictionaryメソッドのエラーが直っていないことを知った時はかなりショックでした。いくつかのエラーは直っています。iOSを使ってもエラーになるメソッドが存在するという点には注意してください。iOSでのバージョンアップに期待するか、他のアセットの登場を期待するか、もしくは自分で作ってしまうか。「LINQ最高!」です。ありがとうございました。upLoginユーザーは見つかりませんでした。