using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class objectSpawnerScript : MonoBehaviour
{
public GameObject prefab;
public float spawnInterval = 1.0f;
GameObject myPrefabInstance;
private void Start()
{
StartCoroutine(SpawnObjects());
Invoke("ExecuteMethod", 5f);
}
IEnumerator SpawnObjects()
{
while (true)
{
Vector3 randomPosition = new Vector3(Random.Range(-5f, 5f), Random.Range(0f, 5f), Random.Range(-5f, 5f));
myPrefabInstance = Instantiate(prefab, randomPosition, Quaternion.identity);
myPrefabInstance.tag = "shikaku";
yield return new WaitForSeconds(spawnInterval);
}
}
void ExecuteMethod()
{
// 実行したい処理をここに書く
Debug.Log("5秒後に実行されました");
// 名前を使ってGameObjectを検索
GameObject[] gameObjects = GameObject.FindGameObjectsWithTag("shikaku");
foreach (GameObject gameObject in gameObjects)
{
Destroy(gameObject);
}
}
}
GameObject.FindGameObjectsWithTag
やGameObject.FindObjectsOfType
などの関数を使用して、特定の名前やタグ、コンポーネントを持つGameObjectのリストを取得します。
// 名前を使ってGameObjectを検索
GameObject[] gameObjects = GameObject.FindGameObjectsWithTag(“MyPrefabTag”);
取得したGameObjectのリストをループ処理で回して、それぞれのGameObjectを削除します。
// タグで検索した場合
foreach (GameObject gameObject in gameObjects) { Destroy(gameObject); }
オブジェクトにタグをつける方法
Prefabにタグを付けるには、まずUnityエディタ内でタグを追加し、その後生成したPrefabのインスタンスに対してタグを設定します。以下の手順で実現できます。
- Unityエディタでタグを追加する:
- メニューバーから「Edit」>「Project Settings」を選択して、Project Settingsウィンドウを開きます。
- 左側のメニューから「Tags and Layers」を選択します。
- 「Tags」セクションの「+」ボタンをクリックして、新しいタグを追加します。ここでは「VT」という名前のタグを追加します。
- スクリプト内でPrefabにタグを設定する:
- Prefabを生成した後、生成したインスタンスに対して追加したタグを設定します。以下のコード例を参考にしてください。
// Prefabを生成
GameObject myPrefabInstance = Instantiate(myPrefab, position, rotation) as GameObject;
// 生成したインスタンスに「VT」というタグを設定
myPrefabInstance.tag = “VT”;
コメント