C# 如何在不知道名称的情况下实例化敌人的预制件
如果我有很多预置,并且我想实例化它们,那么我如何在不重写相同代码的情况下实现它们呢 我认为使用循环然后调用实例化,但是所有的预置都是不同的名称,所以我怎么能把它们放在列表中呢C# 如何在不知道名称的情况下实例化敌人的预制件,c#,unity3d,instantiation,C#,Unity3d,Instantiation,如果我有很多预置,并且我想实例化它们,那么我如何在不重写相同代码的情况下实现它们呢 我认为使用循环然后调用实例化,但是所有的预置都是不同的名称,所以我怎么能把它们放在列表中呢 for(int i =0; i < size; i++) Instantiate(prefabName); for(int i=0;i
for(int i =0; i < size; i++)
Instantiate(prefabName);
for(int i=0;i
您需要创建一个基类,您所有的敌人都可以继承它
public interface Enemy
{
}
然后让你所有的敌人预制从中继承
public class Red_Enemy : MonoBehaviour, Enemy
{
}
然后在生成敌人的类中,您可以创建一个数组
public Enemy [] list;
foreach(Enemy e in list)
Instantiate(e);
您可以通过拖放的方式通过编辑器简单地填充列表。您可以为敌人使用一个通用名称,如E1、E2、E3…
,并将敌人的预置保存在一个目录中,如预置资源预置名称
然后你可以使用循环作为
for(int i =0; i < size; i++)
Instantiate(Resources.Load("E"+i), position, rotation);
// "E"+i for E1, E2 ...
for(int i=0;i
注意:Resources.Load()
查找路径,例如Assets/Resources