見出し画像

『Unity C#基礎』 第六回: 配列とリスト - 複数のデータを効率的に管理しよう

今回は、複数のデータを一度に管理できる配列リストについて学びます。ゲーム開発において、たくさんの敵キャラクターやアイテムを管理するために、配列やリストを使うと非常に便利です。これにより、コードの整理が容易になり、処理も効率的に行えます。


配列とは?

配列は、同じ型の複数のデータを1つの変数にまとめて管理できるデータ構造です。例えば、プレイヤーが持っているアイテムや敵キャラクターの位置情報などを格納するのに適しています。

配列の宣言と初期化

// 配列の宣言
int[] scores = new int[5]; // 5つのint型データを持つ配列

// 配列の初期化
scores[0] = 100;
scores[1] = 95;
scores[2] = 80;
scores[3] = 60;
scores[4] = 90;

配列は、固定された長さを持つため、一度作成した後に要素数を変更することはできません。要素は0から始まるインデックスでアクセスします。

配列の要素にアクセスする

Debug.Log(scores[0]); // 配列の最初の要素(100)を表示

配列を使った繰り返し処理

for (int i = 0; i < scores.Length; i++)
{
    Debug.Log("スコア: " + scores[i]);
}

この例では、for文を使って配列の全ての要素にアクセスし、それをコンソールに出力しています。

リストとは?

リストは、配列とは異なり、動的に要素数を増減できる便利なデータ構造です。UnityのC#ではListというクラスを使ってリストを扱います。リストは要素の追加や削除が簡単にでき、柔軟なデータ管理が可能です。

リストの宣言と初期化

using System.Collections.Generic; // Listを使うために必要

List<int> scores = new List<int>(); // 空のリストを作成

// 要素の追加
scores.Add(100);
scores.Add(95);
scores.Add(80);

リストの要素にアクセスする

Debug.Log(scores[0]); // リストの最初の要素(100)を表示

リストを使った繰り返し処理

for (int i = 0; i < scores.Count; i++)
{
    Debug.Log("スコア: " + scores[i]);
}

配列のLengthの代わりに、リストではCountプロパティを使って要素数を取得します。

リストの便利な操作

リストは、配列に比べて柔軟に操作できます。ここでは、いくつかの便利なメソッドを紹介します。

要素の削除

scores.Remove(80); // 値80の要素を削除

要素の挿入

scores.Insert(1, 85); // インデックス1の位置に85を挿入

リストのクリア

scores.Clear(); // リストの全ての要素を削除


実用例:複数の敵キャラクターの管理

配列やリストを使って、ゲーム内で複数の敵キャラクターを管理する例を見てみましょう。

配列を使った例

using UnityEngine;

public class EnemyManager : MonoBehaviour
{
    public GameObject[] enemies = new GameObject[3]; // 3体の敵キャラクターを管理

    void Start()
    {
        for (int i = 0; i < enemies.Length; i++)
        {
            Instantiate(enemies[i], new Vector3(i * 2.0f, 0, 0), Quaternion.identity); // 敵を生成
        }
    }
}

リストを使った例

using UnityEngine;
using System.Collections.Generic;

public class EnemyManager : MonoBehaviour
{
    public List<GameObject> enemies = new List<GameObject>(); // 動的に敵キャラクターを管理

    void Start()
    {
        for (int i = 0; i < 3; i++)
        {
            GameObject newEnemy = Instantiate(enemies[i], new Vector3(i * 2.0f, 0, 0), Quaternion.identity);
            enemies.Add(newEnemy); // 敵をリストに追加
        }
    }
}

リストを使うことで、敵キャラクターを動的に追加したり削除したりできます。ゲーム開発では、シーンに登場するオブジェクトやキャラクターを柔軟に管理するため、リストを使う場面が多くあります。

配列とリストの使い分け

  • 配列は、固定された数のデータを扱う場合に適しています。データが変わらない場合や、処理速度が重要な場合に使われます。

  • リストは、要素の数が変動する場合に便利です。ゲームの途中でデータを追加・削除する必要がある場合に特に役立ちます。

まとめ

  • 配列は、固定された数の同じ型のデータをまとめて管理するために使います。

  • リストは、要素の追加や削除が簡単にできる、柔軟なデータ構造です。

  • Unityのゲーム開発では、状況に応じて配列とリストを使い分けることで、効率的なデータ管理が可能になります。

次回は、ゲーム開発における重要な要素である関数について学びます。関数を使うことで、コードの再利用性が高まり、効率的にゲームを作ることができるようになります。

この記事が気に入ったらサポートをしてみませんか?