首页 > 解决方案 > 获取游戏对象组件

问题描述

我正在使用它在 GameObject 中查找一些脚本:

GameObject.Find("GameView").GetComponent<SomeClass>();

我是 Unity 的新手,想看看以下是否可行:

SomeClass View1;
SomeClass View2;
View2 = GameObject.Find("GameView").GetComponent<View1.GetType()>();

当然,这会引发错误。但是是否可以为 动态分配类定义GetComponent

标签: unity3d

解决方案


是和否

不使用通用版本,而是GetComponent(Type)

var view2 = GameObject.Find("GameView").GetComponent(View1.GetType);

你至少得到了参考,Component但问题是你很可能仍然需要将它转换为更有用的东西才能执行任何方法或访问它的字段。

除了Component当然适合您的用例。

否则,如果您已经知道您的组件将共享某个基类或接口,则可以改用它。


推荐阅读