こんにちは!エンジニアのオータケです。
ゲーム開発やアプリケーション開発を行っている際に、データをまとめて管理したいということがあると思います。
そういった際に使うのがListというデータ構造になります。
この記事を読んでいただくことで、
・Listとはなにか
・Listへデータを追加する方法
・Listのデータを削除する方法
から
・Listをより使いこなすための方法
・Listの使い方に困った時にどうすればよいか
といった情報について知ることができます。
UnityでもこのListという仕組みは使います。
しっかり学んでいきましょう!
Listとは?
まず、Listとはなにかですが一言で表すと、
「List」とは、同じデータ型の値をまとめて取り扱うためのモノです。
配列の場合、データを削除したり追加する際にひと手間かかってしまいますがListはそういったデータの操作がとても簡単にできます。
Listについてより知りたい方は次の記事をごらんください!
この記事ではListについての基本的な解説からListを扱うための詳しい情報がひとまとめにしてあります!
Unityを使ったゲーム開発の現場ではListは次のようなことに使われることがあります。
RPG
・マップデータ(地形データ)
・持っているアイテムデータ
など
シューティング
・敵の管理
・弾の管理
など
ここで紹介したのはごくごく一部の話です。
実際はもっと多くの場面で使われています!
では次の章で早速Listを追加してみよう。
Listにデータを追加してみよう
この章ではデータの追加方法について解説します。
まずListを使うためにはListを初期化しなければなりません。
初期化とはListを使えるようにするための準備作業だと思うと良いでしょう。
今回は先程の事例のRPGを例にプレイヤーが持っているアイテムの名前をListに追加するサンプルを書いてみたいと思います。
List<string> playerItemList = new List<string>(); playerItemList.Add("ひび割れた棍棒"); playerItemList.Add("錆びた剣"); playerItemList.Add("折れそうな杖");
このサンプルではListの後ろに<>を記述し、stringを指定しています。
ここで型を指定し、どんなデータをいれるのか決めています。
その後にAddメソッドを呼んでいますが、引数には先程Listの型を決めたため文字列のデータを渡しています。
このサンプルの場合は3つアイテム名を追加したためこのplayerItemListには「ひび割れた棍棒」「錆びた剣」「折れそうな杖」といったデータを保持しています。
では次の章では今のサンプルを元にしてデータを削除してみましょう。
Listにデータを削除してみよう
この章では先程の章を元に、「錆びた剣」を捨てるということをしたいと思います。
(つまりデータを削除します)
先程のコードはこちらです。
List<string> playerItemList = new List<string>(); playerItemList.Add("ひび割れた棍棒"); playerItemList.Add("錆びた剣"); playerItemList.Add("折れそうな杖");
そして錆びた剣だけを削除するコードがこちらです。
playerItemList.Remove("錆びた剣");
削除する際にはRemoveメソッドを使ってどのデータを削除するか引数に与えてあげることでデータを削除することができます。
難しくありませんよね?
より追加と削除について詳しく知りたい方は次の記事をごらんください。
Listを使いこなす
Listには他にも様々な機能がありゲーム開発、アプリケーション開発では必須のメソッドがあるため少しだけご紹介します!
データを並び替えよう(ソート)
ゲーム開発でスコアデータをListで保持していて、あとからスコアを追加したい場合があると思います。
このスコアを追加したあとにどうやって並び替えたらよいかという問題が出てくるかと思います。
そんなときにはこの記事にあるようにList.Sortメソッド等を使って並び替えるといいですよ!
データの長さを知りたい
先程のRPGの例で、プレイヤーの持てるアイテムの上限が30個だったとします。
30個以上はアイテムを拾うことができないような仕様にしたい場合、プレイヤーが何個データを保持しているか知りたいですよね?
どうやって調べればよいかと言うとCountプロパティを用いることで知ることができます!
例えば先程のRPGの例で、
List<string> playerItemList = new List<string>(); playerItemList.Add("ひび割れた棍棒"); playerItemList.Add("錆びた剣"); playerItemList.Add("折れそうな杖");
こういったコードの場合には
int itemCount = playerItemList.Count;
とすることで、保持しているアイテム数(データの要素数)が変数itemCountに入ることになります。
こんなときには?
この記事では基本的な使い方をいくつか解説してきましたがその他にも多くの機能があります。
興味があるかたは次の記事を見ていただくことでよりListについて深く知ることができます!
まとめ
いかがでしょうか?
C#のListは使いやすいためUnityでゲーム開発、アプリ開発をする際にすぐに覚えて使うことができるかと思います。
様々な場面で使うため必ず覚えておきましょう!