【ハルシオンブログ】ListでほしいものをFindするときに、まとめてとる方法や、Findの複数条件が使えることについて
こんにちは!坂内っす。
UnityでList使ってますか?
List<クラス>
で、指定クラスのオブジェクトがいっぱい入るリスト作れますよね。
よく使ってます。
例えばこんなクラスがあるとします。
【AAA.cs】
で、こんな感じで3個のAAAオブジェクトがListに入れます。
以前の記事で、Findを使って1つのオブジェクトを取り出すっていうのはやっています。
例えば「aaa.Noが2のモノを取り出す」って場合はこんな感じ
これで、a1として入れたものが取り出せます。
では「aaaTypeが0のモノをすべて」取り出すにはどうすればいいでしょうか?
こんな感じで複数のモノも取れます。
また、複数の検索条件ももちろん使うことができます。
これであなたもFindマスター(だったらいいよね)
ってことで、是非ListとFindをご使用ください。多様していいのか分かりませんが!
あでゅ~ノシ
UnityでList使ってますか?
List<クラス>
で、指定クラスのオブジェクトがいっぱい入るリスト作れますよね。
よく使ってます。
例えばこんなクラスがあるとします。
【AAA.cs】
public class AAA
{
public int aaaNo;
public int aaaType;
public string aaaName;
}
で、こんな感じで3個のAAAオブジェクトがListに入れます。
using System.Collections.Generic;
using UnityEngine;
public class Scripts20190708 : MonoBehaviour
{
List aaaAry = new List();
void Start()
{
AAA a0 = new AAA();
a0.aaaNo = 0;
a0.aaaType = 0;
a0.aaaName = "あいうえお";
aaaAry.Add(a0);
AAA a1 = new AAA();
a1.aaaNo = 1;
a1.aaaType = 0;
a1.aaaName = "かきくけこ";
aaaAry.Add(a1);
AAA a2 = new AAA();
a2.aaaNo = 2;
a2.aaaType = 1;
a2.aaaName = "さしすせそ";
aaaAry.Add(a2);
}
}
以前の記事で、Findを使って1つのオブジェクトを取り出すっていうのはやっています。
例えば「aaa.Noが2のモノを取り出す」って場合はこんな感じ
AAA no2Object = aaaAry.Find(x => x.aaaNo == 2);
これで、a1として入れたものが取り出せます。
では「aaaTypeが0のモノをすべて」取り出すにはどうすればいいでしょうか?
List allType0Obj = aaaAry.FindAll(x => x.aaaType == 0);
こんな感じで複数のモノも取れます。
また、複数の検索条件ももちろん使うことができます。
AAA no2Type1Obj = aaaAry.Find(x => x.aaaNo == 2 && x.aaaType == 1);
これであなたもFindマスター(だったらいいよね)
ってことで、是非ListとFindをご使用ください。多様していいのか分かりませんが!
あでゅ~ノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】3Dオブジェクトのワイヤーフレーム化。 | 【ハルシオンブログ】今更ですがInspectorに計算式が書けます »
コメント
| h o m e |