首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将单个对象分配给多个脚本--有多少实例

问将单个对象分配给多个脚本--有多少实例
EN

Stack Overflow用户
提问于 2016-03-21 07:33:39
回答 2查看 223关注 0票数 0

我有两个类clsA,clsB (都是非静态的).clsB附加到20 GameObject,而clsA只附加到单GameObject。现在,clsB正在使用ClsA作为参考。我在clsA gameObject in clsB 中创建了一个公共变量,现在在clsB中访问它的属性,它被附加了20个游戏对象(意味着20个脚本到20个gameoBjects)。

我的简单问题是所有20个都包含一个clsA对象或所有包含(ClsA)不同对象/实例。

我知道值类型与参考类型之间的区别,但在这一点上我感到困惑,因为我面临一些问题,所以我很好地提出了这个问题,我自己的理解是,所有20种都只有单一的clsB实例。请尽快澄清。

正如答案所建议的那样,我将此代码用于获取实例Id。令人惊讶的是,它显示的是相同的实例Id。

代码语言:javascript
复制
avgManager = GameObject.Find("AGV Manager").GetComponent<AVGManager>();
        Debug.Log(gameObject.name  + " : " + avgManager.GetInstanceID());
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-01 07:55:15

我的简单答案是,所有20个包含一个clsA对象,它们只是一个已创建并分配给所有20个对象的实例,因为我已经按实例id进行了检查,所有这些都显示相同的Id(意为实例编号)。

代码语言:javascript
复制
Debug.Log(gameObject.name  + " : " + avgManager.GetInstanceID());

avgManager分配给20个位置,所有20个位置显示相同的实例id。GetInstanceID 返回对象的实例ID.

票数 0
EN

Stack Overflow用户

发布于 2016-03-21 07:40:48

每个clsB都有自己的clsA实例。因为有20个ClsB,就会有20个clsA对象。您可以通过在visual studio调试器中执行- 使对象ID来验证这一点。

将变量添加到监视窗口,右键单击变量并选择MakeObjectId。对于其中的clsB和clsA的不同实例,再次执行此操作。如果它们不匹配相同的id,则可以确保它们不是同一个实例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36125325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档