别用find,直接@property一个node,手动拖入,然后使用
也是这样,不明白为什么还不行;我在其他地方也用这个方法是可以调用的,是节点层级问题吗?button是一个预制节点,实例后是UI_Manger的子节点,然后点button调用UI_Manger上的一个方法。
写法问题
@property({ type: Node })
UI_Manger = null;
getComponent后面直接写类名,不要加引号
- getComponent('UI_Manger')
+ getComponent(UI_Manger)
话说"Manger"是个啥,单词能拼对吗
是一个脚本名
预制体:
@property({ type: Prefab })
prefabModel: Prefab | null = null;
官方写法呗 
我就是看官方文档的,都是@property(Node)
你把鼠标放a上面,看下显示的是啥类型
感觉上面说了一堆废话。
只是因为typescript的类型检测导致的,getComponen方法是一个重载方法,你可以传一个类型,返回的就是这个类型的对象,比如 getComponent(UI_Manager),他返回的就是一个 UI_Manager 的对象,你可以调用他的方法,如果你调用的是 getComponent('UI_Manager') ,他返回的是一个 Component 对象,很显然 Component 对象是没有你需要的方法的。
要解决你的问题,要么像上面第一种办法,要么就使用 let a: any = find("xxx").getComponent('UI_Manager') ,AnyScript就不用担心没有方法了 
你觉得对就行, 不管他报红, 好像也是可以build成功的




