如何在不知道名称的情况下实例化敌方预制件
本文关键字:实例化 情况下 方预制 不知道 | 更新日期: 2023-09-27 18:32:12
如果我有很多预制件并且我想将它们全部实例化,那么如何在不必重写相同代码的情况下做到这一点。
我认为使用循环然后调用 Instantiate,但所有预制件都是不同的名称,那么我如何将它们放在列表中?
for(int i =0; i < size; i++)
Instantiate(prefabName);
您需要创建一个所有Enemies
继承的基类。
public interface Enemy
{
}
然后让你所有的敌人预制件继承自此。
public class Red_Enemy : MonoBehaviour, Enemy
{
}
然后在生成Enemies
的类中,您可以创建一个数组。
public Enemy [] list;
foreach(Enemy e in list)
Instantiate(e);
您可以通过拖放通过编辑器简单地填充list
。
您可以使用
通用名称(如E1, E2, E3...
)来表示敌人,并将敌人预制件保留在目录上,例如Prefabs
> Resources
> PrefabName
然后你可以将循环用作,
for(int i =0; i < size; i++)
Instantiate(Resources.Load("E"+i), position, rotation);
// "E"+i for E1, E2 ...
注意:Resources.Load()
查找路径,例如 Assets/Resources