通过node.getComponents(Component)获取到了节点上所有组件。
但是我需要获取自定义脚本,也就是我们创建并挂载到节点上的ts或者js脚本。
有没有什么简单直接的判断方式?
或者有没有其他方法取自定义脚本?(不考虑脚本名称的情况下)
需求其实很简单,就是不管三七二十八,直接拿到组件上的脚本。
通过node.getComponents(Component)获取到了节点上所有组件。
但是我需要获取自定义脚本,也就是我们创建并挂载到节点上的ts或者js脚本。
有没有什么简单直接的判断方式?
或者有没有其他方法取自定义脚本?(不考虑脚本名称的情况下)
需求其实很简单,就是不管三七二十八,直接拿到组件上的脚本。
直接获取所有的组件,已知系统组件名字,剩下的就是你的组件了.
主要是你的需求很奇怪,遍历所有组件是一个不错的方法.
已知系统组件名字,意思是把所有系统组件的名字做个统计记录,然后遍历排除吗?
我想到的是把所有自定义脚本名称都加特定头,比如 CTM_XXXCompon 这様 
不用统计吧,cocos自带的组件不都是cc.开头的,判断组件名字不是这个开头不就是自定义的吗,还有sp.开头排除下
这是其中方法,
还有一种,自己组件以特定str开头,比如MyLabel,MyButton.包含"My"就是自己组件.
3.x没有这个开头了~~
这种方式有点苛刻了,用起来不太方便。
好像是一种方案,我先研究下试试。
组件名字就是cc.开头没错啊,引入方式跟组件名字没关系的

只要你自定义组件这里的名字不是cc.开头就行,一般也不会这么做

确实是一个很好的思路。 
写个自己的基类集成脚本类,然后你的脚本类都继承这个基类, 是这个自己基类的就是你的脚本
这样也可以实现,但是用起来还是不太方便。
基类方案挺好的呀,基类里面再写个必须实现的获取脚本名字的方法,这样先拿到基类,再通过获取名字的方法,就知道具体是哪个组件了