Unityで生成したプレファブをリストに追加や削除をする

目次

スクリプトを貼り付けるための空オブジェクトの作成

Create → CreateEmptyをおします

Listに入れたオブジェクトを操作する流れ

リストに格納したオブジェクトを消します
①リストの作成
②リストにオブジェクトを追加
③リストに追加されたオブジェクトを指定して消す
という流れになります

入力するスクリプト

using System.Collections;
using System.Collections.Generic;// Listを扱うのに必要
using UnityEngine;

public class ListScript : MonoBehaviour
{
    public GameObject ListObject;// リストに入れるために生成するプレファブ
    public List<GameObject> ObjectList = new List<GameObject>();// プレイファブを入れるリスト
    private int ObjectCount;// 生成したプレファブの数

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))// もし、右クリックしたら、
        {
            GameObject ListObjects = GameObject.Instantiate(ListObject) as GameObject;// ListObjectsとしてプレファブを生成する
            ListObjects.transform.position = transform.position;// このオブジェクトの位置にプレファブの座標を移動させる
            ListObjects.transform.rotation = Quaternion.identity;// プレファブの向きを元のままにする
            ObjectList.Add(ListObjects);// リストにプレファブを加える
            ObjectCount += 1;// プレファブの数を1増やす
        }

        if (ObjectCount < 1)// もしプレファブの数が1以下なら、
        {
            ObjectCount = 0;// プレファブの数を0にする
        }

        if (Input.GetMouseButtonDown(1))// もし、右クリックしたら、
        {
            Destroy(ObjectList[ObjectCount - 1]);// リストの(プレファブの数-1)番目のオブジェクトを消す
            ObjectList.RemoveAt(ObjectCount - 1);// リストの(プレファブの数-1)番目を削除する
            ObjectCount -= 1;// プレファブの数を1減らす
        }
    }
}

入力したら、スクリプトを空オブジェクトにドラッグ&ドロップし、ListObjectにはプレファブ化したオブジェクトをドラッグ&ドロップします

テストプレイをしてみると

左クリックしたら、プレファブが生成され、

右クリックしたら、プレファブが削除されます

リストを見てみると、リストにも追加されたり、

削除されたりします
これによって敵が大量に出る時の管理がやりやすくなりますね♪

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次