首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >铸造与GetComponent在整体上的差异

铸造与GetComponent在整体上的差异
EN

Stack Overflow用户
提问于 2022-08-23 19:18:50
回答 2查看 68关注 0票数 0

我一直在寻找这方面的信息,但我仍然有很多疑问。想象一下,我们实例化了一个带有“移动”组件的对象。这三者之间有什么区别:

代码语言:javascript
运行
复制
Movement movement = Instantiate(anObject).gameObject.GetComponent<Movement>();

Movement movement = Instantiate(anObject) as Movement;

Movement movement = (Movement)Instantiate(anObject);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-23 19:46:15

实例化返回类型没有什么特别之处,它只是一个普通的统一对象克隆,它是您放入的任何对象。如果你输入一个GameObject,你就会得到一个GameObject。如果输入一个转换,您将得到一个转换(它的父gameObject也是克隆的)。

这意味着如果您的anObject实例是GameObject类型,则将其转换为Movement将无法工作。你必须使用GetComponent<Movement>()

例2和例3仅根据As与铸件的使用情况而有所不同。两种操作以前也有人回答过。的区别

票数 0
EN

Stack Overflow用户

发布于 2022-08-23 19:40:37

第一行是获取组件的正确方法。顺便说一下,您可以在实例化时直接调用GetComponent,因为它返回如下所示的GameObject:

代码语言:javascript
运行
复制
Movement movement = Instantiate(anObject).GetComponent<Movement>();

第二个和第三个选项不起作用,因为您不能只将新的GameObject转换为组件。

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

https://stackoverflow.com/questions/73464080

复制
相关文章

相似问题

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