Botのデータベースの作成(ScriptableObjectの使い方)


スポーンステータス
using System;
using UnityEngine;
[Serializable]
public class SpawnStatus
{
[Range(1, 8)]
public int repeatCount;
[Range(1, 10)]
public int moveSpeed;
}
スポーンデータベース
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu]
public class SpawnDatabase : ScriptableObject // ★変更
{
public List<SpawnStatus> spawnList = new List<SpawnStatus>();
}




データベースの設定通りにBotを生み出す
using System.Collections;
using UnityEngine;
public class BotSpawn : MonoBehaviour
{
public SpawnDatabase database;
public GameObject botPrefab;
public GameObject spawnPoint;
void Start()
{
StartCoroutine(nameof(SpawnRoutine));
}
private IEnumerator SpawnRoutine()
{
yield return new WaitForSeconds(2f);
for (int i = 0; i < database.spawnList.Count; i++)
{
for (int j = 0; j < database.spawnList[i].repeatCount; j++)
{
int speed = database.spawnList[i].moveSpeed;
GameObject bot = Instantiate(botPrefab, spawnPoint.transform.position, transform.rotation);
bot.GetComponent<BotMove>().moveSpeed = speed;
yield return new WaitForSeconds(1f);
}
yield return new WaitForSeconds(2f);
}
}
}




【Unity6版】TowerDX(全 回)
他のコースを見る

スポーンステータス
using System;
using UnityEngine;
[Serializable]
public class SpawnStatus
{
[Range(1, 8)]
public int repeatCount;
[Range(1, 10)]
public int moveSpeed;
}
スポーンデータベース
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu]
public class SpawnDatabase : ScriptableObject // ★変更
{
public List<SpawnStatus> spawnList = new List<SpawnStatus>();
}




データベースの設定通りにBotを生み出す
using System.Collections;
using UnityEngine;
public class BotSpawn : MonoBehaviour
{
public SpawnDatabase database;
public GameObject botPrefab;
public GameObject spawnPoint;
void Start()
{
StartCoroutine(nameof(SpawnRoutine));
}
private IEnumerator SpawnRoutine()
{
yield return new WaitForSeconds(2f);
for (int i = 0; i < database.spawnList.Count; i++)
{
for (int j = 0; j < database.spawnList[i].repeatCount; j++)
{
int speed = database.spawnList[i].moveSpeed;
GameObject bot = Instantiate(botPrefab, spawnPoint.transform.position, transform.rotation);
bot.GetComponent<BotMove>().moveSpeed = speed;
yield return new WaitForSeconds(1f);
}
yield return new WaitForSeconds(2f);
}
}
}




Botのデータベースの作成(ScriptableObjectの使い方)