Guy*_*ito 1 constructor unity-game-engine unity-components
我是团结的新手,并且在架构方面遇到了一些麻烦.
假设我有一个名为'component A'的C#脚本组件.我希望组件A有一个包含"组件B"类型的100个其他组件的数组.如何使用特定值以编程方式构造组件B?
请注意,'组件B'派生自'MonoBehaviour',因为它需要能够调用'StartCoroutine'
我知道在团结中你不像通常在OO那样使用构造函数.
请注意,'组件B'派生自'MonoBehaviour',因为它需要能够调用'StartCoroutine'
我知道在团结中你不像通常在OO那样使用构造函数.
确实如此.可能性是在运行时初始化组件并提供初始化它们的方法(如果初始化需要参数,否则所有初始化都可以在内部Start
或Awake
方法中完成).
如何使用特定值以编程方式构造组件B?
这是一种可能的方式:
public class BComponent : MonoBehavior
{
int id;
public void Init(int i)
{
id = i;
}
}
}
public class AComponent : MonoBehavior
{
private BComponent[] bs;
void Start()
{
bs = new BComponent[100];
for (int i=0; i < 100; ++i )
{
bs[i] = gameObject.AddComponent<BComponent>().Init(i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,在上面的示例中,所有组件都将附加到同一个GameObject,这可能不是您想要的.最终尝试提供更多细节.