スライドショー

【Unity入門】アプリ開発で必須!Listの使い方まとめ

こんにちは!エンジニアのオータケです。

ゲーム開発やアプリケーション開発を行っている際に、データをまとめて管理したいということがあると思います。

そういった際に使うのが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メソッドを使ってどのデータを削除するか引数に与えてあげることでデータを削除することができます。

難しくありませんよね?

より追加と削除について詳しく知りたい方は次の記事をごらんください。

【C#入門】Add、RemoveでListの要素を追加、削除する方法
更新日 : 2019年5月22日

Listを使いこなす

Listには他にも様々な機能がありゲーム開発、アプリケーション開発では必須のメソッドがあるため少しだけご紹介します!

データを並び替えよう(ソート)

ゲーム開発でスコアデータをListで保持していて、あとからスコアを追加したい場合があると思います。

このスコアを追加したあとにどうやって並び替えたらよいかという問題が出てくるかと思います。

そんなときにはこの記事にあるようにList.Sortメソッド等を使って並び替えるといいですよ!

【C#入門】配列、Listをソートする方法(降順、カスタマイズも解説)
更新日 : 2019年4月25日

データの長さを知りたい

先程の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の使い方総まとめ(ArrayList/Add/Remove/ソート/検索)
更新日 : 2019年7月9日

まとめ

いかがでしょうか?

C#のListは使いやすいためUnityでゲーム開発、アプリ開発をする際にすぐに覚えて使うことができるかと思います。

様々な場面で使うため必ず覚えておきましょう!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

オータケ

オータケ

30歳、フリーランスプログラマ。中学の頃よりプログラミングに興味を持ちゲーム開発やWebサイト構築などを経験
新しいフレームワークやライブラリに興味があり革新的な機能が含まれていると泣いて喜ぶ。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説