unity3d - 获取游戏对象组件
问题描述
我正在使用它在 GameObject 中查找一些脚本:
GameObject.Find("GameView").GetComponent<SomeClass>();
我是 Unity 的新手,想看看以下是否可行:
SomeClass View1;
SomeClass View2;
View2 = GameObject.Find("GameView").GetComponent<View1.GetType()>();
当然,这会引发错误。但是是否可以为 动态分配类定义GetComponent
?
解决方案
是和否
不使用通用版本,而是GetComponent(Type)
var view2 = GameObject.Find("GameView").GetComponent(View1.GetType);
你至少得到了参考,Component
但问题是你很可能仍然需要将它转换为更有用的东西才能执行任何方法或访问它的字段。
除了Component
当然适合您的用例。
否则,如果您已经知道您的组件将共享某个基类或接口,则可以改用它。
推荐阅读
- python - python:如何通过 NetworkX 获得度数分布的第二时刻
- node.js - 错误:命令失败:C:\Program Files (x86)\Python38-32\python.exe
- java - 仁进 NullPointerException
- java - 设置 input.nextDouble() 时出错
- elasticsearch - 了解 DSL 查询属性
- r - 在 R 中查找指定 beta 分布的分位数
- google-pay - Google Pay - 它可以支持第三方之间的市场吗?
- node.js - Nodejs文件上传,multer vs express-fileupload,使用哪个?
- python - Flask-login 可以登录但不记得登录会话
- regex - 使用 bash 命令将所有非字母数字字符替换为点