Unity3d AddComponent采用变量

本文关键字:变量 AddComponent Unity3d | 更新日期: 2023-09-27 18:14:03

详细信息:在Unity3d上的C#中搜索了unity文档,但这个例子不适合我的情况,我访问的其他网站也是如此。(我没有把它们列出来。(

我想做的是传递一个带有构造函数的类变量作为组件:

CustomComponentClass ccc = new CustomComponentClass(2343, "blop");
gameObject.AddComponent(ccc);

我想知道我所尝试的是否有效,或者我错过了什么。。。

问题:

gameObject.AddComponent(ccc); -> cannot convert ccc to string.
gameObject.AddComponent<ccc>(); -> Are you missing a using directive or an assembly reference? (i'm not, i'm using a variable and all is in the same namespace)
gameObject.AddComponent<CustomComponentClass>(ccc); -> UnityEngine.GameObject.AddComponent(string) cannot be used with the type arguments
gameObject.AddComponent<CustomComponentClass>(2343, "blop"); -> No overload for method AddComponent takes 2 arguments

不管我怎么做都无济于事。C#并不像javascript,如果我说得对的话,我们过去可以在js中的addcomponent中传递变量。

上下文:我绝对要把它传给构造函数。我有两个字段是私有的,出于安全考虑,我不能将其设置为静态、常量或公共字段。

选项:如果答案对我来说太复杂,我可能会制作get/set并检查字段是否为空。

Unity3d AddComponent采用变量

您绝对不需要将其传递给构造函数。

相反,创建正常的组件(不带参数(,将组件添加到游戏对象中,然后在组件上调用一个提供必要参数的设置方法,并运行构造函数中当前的任何代码。