C# (Unity)如何将AddComponent与泛型类型一起使用

C# (Unity)如何将AddComponent与泛型类型一起使用,c#,generics,unity3d,components,C#,Generics,Unity3d,Components,我正在尝试从列表中添加组件 这里有一个非常相似的情况,除了他没有从列表中抓取它们。 这是到目前为止我的代码,但我真的不知道该怎么做。这是C#顺便说一句,我只是觉得没有选择,所以我很抱歉 它可以工作,它确实添加了一个没有错误的组件,但是它添加的组件是空的 编辑:我忘了添加AddComponentToObject。下面是完整的代码 public class LittleComponent : MonoBehaviour { public List<UnityEngine.Objec

我正在尝试从列表中添加组件

这里有一个非常相似的情况,除了他没有从列表中抓取它们。

这是到目前为止我的代码,但我真的不知道该怎么做。这是C#顺便说一句,我只是觉得没有选择,所以我很抱歉

它可以工作,它确实添加了一个没有错误的组件,但是它添加的组件是空的

编辑:我忘了添加AddComponentToObject。下面是完整的代码

public class LittleComponent : MonoBehaviour {

    public List<UnityEngine.Object> specialScripts = new List<UnityEngine.Object>();

    public Type GenericSpecialtyScript(int script)
    {
        return specialScripts[script].GetType();
    }


    public void AddComponentToObject(GameObject addToObject)
    {

        GenericSpecialtyScript(0);
        addToObject.AddComponent<GenericSpecialtyScript>();

    }
}

public class GenericSpecialtyScript : MonoBehaviour
{

}

如果你只想从一个列表中添加一组组件到一个游戏对象中,那么你可以使用一个列表

公共类多分量加法器:单行为{
列表类型=新列表();
无效唤醒(){
类型。添加(类型(苹果));
添加(typeof(橙色));
类型。添加(类型(香蕉));
foreach(类型中的var t)
{
this.gameObject.AddComponent(t);
}
}
}

如果我以前不知道类型怎么办?我正在创建一个编辑器工具,我不想让人们做任何编码。这已经有几年了,但是Unity论坛上有人找到了一种方法,并将其放到github上。
public void TestButton()
{
    if (GUILayout.Button("Test", GUILayout.Height(30)))
    {
        _LittleComponent.AddComponentToObject(_LittleComponent.gameObject);
    }
}
public class MultiComponentAdder : MonoBehaviour {
  List<Type> types = new List<Type>();

  void Awake () {
    types.Add(typeof(Apple));
    types.Add(typeof(Orange));
    types.Add(typeof(Banana));

    foreach (var t in types)
    {
        this.gameObject.AddComponent(t);
    }
  }
}