【发布时间】:2017-09-04 05:41:09
【问题描述】:
我正在尝试从列表中添加组件。
这是一个非常相似的情况,只是他没有从列表中获取它们。 Unity how can AddComponent<T>()?
到目前为止,这是我的代码,但我真的不知道从哪里开始。顺便说一句,它是 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
{
}
这就是我测试它的方式。它只是一个编辑器脚本。
public void TestButton()
{
if (GUILayout.Button("Test", GUILayout.Height(30)))
{
_LittleComponent.AddComponentToObject(_LittleComponent.gameObject);
}
}
【问题讨论】:
-
这已经有几年的历史了,但是 Unity 论坛上有人找到了一种方法并将其放在了 github 上。 github.com/Baste-RainGames/RuntimeScriptField_Unity
标签: c# generics unity3d components