查找动态生成的组件 Unity

Posted

技术标签:

【中文标题】查找动态生成的组件 Unity【英文标题】:Finding dynamically generated components Unity 【发布时间】:2021-12-18 12:08:18 【问题描述】:

我有一个游戏对象,我正在为该对象生成一个组件

var arcGISMapViewComponent = gameObject.AddComponent<ArcGISMapViewComponent>();

Void Start()下

但是,我还有另一门课是

public void ReadStringInput(string s)

我还需要在那里显示 arcGISMapViewComponent 的存在,但由于它一开始还没有生成,所以我遇到了一个错误

找不到'arcGISMapViewComponent'我该如何解决这个问题?

【问题讨论】:

请使用正确的标签!请注意,unityscript 更好曾经是一种在早期 Unity 版本中使用的自定义 javascript 风格的语言,现在长期弃用 作为我的一个经验法则:在不依赖Awake 中的其他组件的情况下,尽你所能。其余的在Start 中初始化。除此之外,您总是必须使用执行顺序或使用事件 【参考方案1】:

您可以使用Awake() 确保在其他Start 代码之前调用某些代码(在您的情况下为组件创建)。如果您的其他类不是MonoBehaviour,那么您应该创建一个事件并Invoke 它通知该组件已创建并且您的其他类订阅该事件。

【讨论】:

以上是关于查找动态生成的组件 Unity的主要内容,如果未能解决你的问题,请参考以下文章

unity3d动态操作组件

在 Unity 中平滑动态生成的网格?

unity中动态生成网格

unity3D中如何生成世界地形,动态加载和卸载?

Unity记录一个动态生成代码方法

Unity 预制件的行为不同,具体取决于是将它们静态拖动到场景中还是让它们由代码动态生成