FC2ブログ
    09 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 11

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【Unity】LINQとかちょっと触ってみたよ!でもiOS実機で問題あるメソッドもあるのね… 

    こんにちは。
    大坂です。

    昨日から雨すごいですね・・・。
    色々なところが冠水とかしてますが、みなさん大丈夫でしょうか・・・。

    さて、今週も宴・・・と思いましたが、違うネタです。
    C#でLINQって機能がありますね。それをUnityでも使ってみたってお話。
    使うの慣れれば、コードがすっきりしますね。

    では簡単に使い方。
    まずは適当にこんなクラスを準備。
    public class Item {
    public string itemName;
    public int itemType;
    public int price;
    }


    次にアイテムデータを適当に作成。
        List<Item> itemData = new List<Item>();

    void CreateItemData() {
    Item item1 = new Item();
    item1.itemName = "アイテム1";
    item1.itemType = 1;
    item1.price = 100;

    itemData.Add(item1);

    Item item2 = new Item();
    item2.itemName = "アイテム2";
    item2.itemType = 1;
    item2.price = 150;

    itemData.Add(item2);

    Item item3 = new Item();
    item3.itemName = "アイテム3";
    item3.itemType = 2;
    item3.price = 70;

    itemData.Add(item3);

    Item item4 = new Item();
    item4.itemName = "アイテム4";
    item4.itemType = 2;
    item4.price = 1000;

    itemData.Add(item4);

    Item item5 = new Item();
    item5.itemName = "アイテム5";
    item5.itemType = 3;
    item5.price = 400;

    itemData.Add(item5);
    }

    で、LINQを使ってアイテムデータを抽出。
    あ、LINQ使うときは「using System.Linq;」が必要です。
        //itemTypeが1のデータの個数を抽出
    int itemType1Count = itemData.Count(item => item.itemType == 1);

    //itemTypeが2のデータを抽出
    List<Item> itemType2Data = itemData.Where(item => item.itemType == 2).ToList<Item>();


    それぞれデータをログに出だすと

    ちゃんと抽出できてますね。

    並べ替えとかもできるので、使いたいんですが・・・。
    Unity+iOSでエラーになるメソッドがあるみたいですね。
    今回はちょっとiOSの実機で試すところまではやってませんが、まとめられてますね。
    Unity+iOSでエラーになるLINQのまとめ
    ブログ書いてる方がUniLinqというライブラリも作ってるみたいですね。
    UniLinq
    まだ不完全らしいですが、結構改善されてるみたいです。

    では今週もこの辺でノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/238-d2fe1c6c
    この記事にトラックバックする(FC2ブログユーザー)