Unity 不用Inspector拖拽的话该如何引用?

首先描述一下问题情况:
手头有A,B两个prefab,而这两个prefab中又有A,B两个脚本。A算是一个class。
现在脚本A中有一个方法,暂且称这个方法是load,是实时读取prefabA中的某个物体的RectTransform。
而此时,我在脚本B中,想要调用load。但因为我想获取的是A的实时数据,所以不能使用new来新建一个物体。
于是我在B中写了如下代码:
public A _a;
_a.Load();
这个方法可以运行,但是需要在prefabB的Inspector里,把A拖进去才能正常读取和使用。
(如图)

img

而现在,有人提出要求,要求我不要使用inspector的拖拽去引用_a。
我尝试过使用getComponent,但是脚本A算是一个class,所以无法引用里面的内容。

img

所以现在提问:如何正确引用_a?

1.你代码GetComponent的原因是因为你变量的类型定义错了,获取其他脚本要定义该脚本名称的变量来获取
2.如果按你的写法

img

但是这个方法会在每次调用时GetComponet,对性能有一定的影响
3.最好按楼上答主的写法来调用该事件

img



```c#
A  _a = GameObject.Find("PrefabA").GetComponent<A>();
//调用_a.Load();
RectTransform rectTrans = _a.Load();

```

查找游戏对象,然后调用。