所以我为我的游戏做了一个产卵系统,我有两个列表,敌人和产卵点。奇怪的是,当我引用enemiedata
来获取产卵之间的时间时,它给了我这个错误
参数异常:GetComponent要求请求的组件"EnemieData"派生自MonoBehaviour或Component或者是接口。
(enemiedata是可编写脚本的对象)
下面是我的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemieSpawn : MonoBehaviour
{
//If your game is not Procedurally Generated just drag and drop your spawn points onto this list.
public List<Transform> spawnPoints;
public List<GameObject> enemies;
public bool spawn;
public float timeSinceLastSpawn;
public void Update()
{
timeSinceLastSpawn += Time.deltaTime;
if (spawn == true)
{
foreach(GameObject enemie in enemies)
{
foreach (Transform spawn in spawnPoints)
{
EnemieData enemiedata = enemie.GetComponent<EnemieData>();
if (enemiedata.spawnrate >= timeSinceLastSpawn)
{
SpawnEnemy(spawn, enemie);
}
}
timeSinceLastSpawn = 0;
}
}
}
//Method to spawn your enemy at a given point.
public void SpawnEnemy(Transform spawnPoint, GameObject enemies)
{
Instantiate(enemies, spawnPoint.position, spawnPoint.rotation);
}
}
1条答案
按热度按时间9avjhtql1#
你基本上已经回答了你自己的问题,为什么会发生这种情况。但是,为了纠正这个问题,你必须有一个组件,你可以附加到你的敌人游戏对象,其中包括EnemieData。
一个可能的解决方案可能如下所示:
然后在你的敌人spawner中,你可以修改你现有的代码: