TS组件自动引用自定义属性,告别拖动

功能脚本组件太过依赖于编辑器,在多个项目实践中遇到的一些类似“蚊虫叮咬”,不痛但痒:
1.某些原因造成的“脚本丢失”且不可逆的情况下,该脚本内部所有引用重新拖动,你记得还好,算体力活,如果不记得就GG了,尤其是无规则的数组形式的引用。
2.维护别人代码的时候,光看脚本组件很难确定abc引用了哪个节点哪个组件必须要翻编辑器
3.N个类似节点每一个节点(比如玩家的座位)都需要同一个脚本控制时,要重复N次拖动
4.想不起来了…

已收录到自己的插件中,新框架自用,比较懒可能不会提交商店。
如约分享,感谢@Jare技术支持

BaseComponent.ts.zip (2.1 KB)
/**

  • 扩展组件基类
  • 自动引用被@property 装饰的子节点及子节点以下节点
  • 规则:
  • 1.扩展(占用)tooltip装饰 用来标记被装饰自定义属性的节点引用路径【相对路径】
  •  tooltip用例:  rootNode -> myComponent extends BaseComponent
    
  •                         ┗child1 ->
  •                                 ┗child1_1 ->
  •                                 ┗child1_2 ->
  •  若想在myComponent完成自动引用child1_1 ==> tooltip:"child1/child1_1"
    
  • 2.支持数组格式【以\n分割】
  •   同1节点结构:tooltip:“child1/child1_1\nchild1/child1_2”
  • 3.如果不指定tooltip则默认引用子节点下与属性同名节点
  • 4.不在编辑器显示的属性会被忽略
  •   a.以’_'开头命名
  •   b.指定 visible:false
  • 5.找不到的节点或组件会被忽略并保持原有引用
  • 6.如果想引用其他节点上的节点或者组件或者资源类型,根据5的特性可按照原始方式:手动拖动到引用槽
  • 备注:若有其他自动引用需求,可在resetInEditor2中diy特定或者复杂引用
    */
3赞

节点的嵌套在开发的过程中经常调整的,如果调整节点还要去改toolTip就很麻烦了,并且只能程序改toolTip,这样耦合就很大了
一般需要代码控制的节点的命名和不需要控制的区分开,通过加后缀前缀实现,脚本变量的命名要和节点的名字保持一致,这样就可以通过名字来自动找到节点了

autoRef.zip (18.6 KB)
基于楼主的代码,改为通过名字自动去找节点,使用方法:建一个空项目然后把autoRef包导入到CocosCreator中

1赞

这个是可以防止脚本丢失吗

怎么用啊

不能防止脚本丢失,是降低脚本丢失后的工作量