gpt4 book ai didi

c# - Unity3d AddComponent 取变量

转载 作者:行者123 更新时间:2023-11-30 16:58:44 26 4
gpt4 key购买 nike

详细信息:在 Unity3d 上的 C# 中在统一文档中进行了搜索,但该示例不适合我的情况,我访问过的其他网站也是如此。 (我没有按我应该的方式列出它们。)

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

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 中传递变量。

上下文:我绝对必须在构造函数中传递它。我有 2 个私有(private)字段,出于安全原因,我不能将其设置为静态、常量或公共(public)。

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

最佳答案

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

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

关于c# - Unity3d AddComponent 取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24892426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com