脚本替换 优化建议

脚本A 继承 脚本B。
脚本B 绑定在节点C上。
能做一个脚本A替换脚本B 而且绑定在脚本上的数据 不用重新绑定。
现在只有先移除脚本B,在绑定脚本A,而且绑定数据掉了,难受啊。

你的帖子已经被社区标记并被临时隐藏。

哎哟,想法不错哦,不过感觉官方不一定会搞
不过防绑定数据丢失可以这么处理:
1、将A脚本也挂到C节点,放置在B脚本下方,保存;
2、打开对应的.prefab或是.scene文件(JSON格式);
3、搜索下父脚本绑定的数据名称,会出现两次,其中上面的对象就是B,下面的对象就是A;
4、拷贝B对象的绑定数据属性到A对象,保存(只拷贝相同的绑定数据即可);
5、回到UI界面看效果会发现A脚本也绑定好了,这时可以把B脚本删了;

肯定 老脚本也在用嘛 不能删除

那就不要绑定数据呀,全部动态获取不就好了

1赞

这个只是我的建议 动态获取肯定可以 现在想的是 不动态获取呀

你要动态获取的时候,节点变动怎么搞?代码再重新搞一遍很麻烦的。 :3:

那你要这样说,手拖得话那万一脚本里改变量名怎么办? :rofl: :rofl: :rofl: :rofl: :rofl:个人习惯问题了这就属于

额 是继承

不是让你删代码,是说父脚本挂在节点上面可以移除了,因为已经拷贝好数据它没用了:rofl:

找到场景里脚本B对应的uuid,替换成A的或许可以

1,把 两个脚本 都挂一个临时的节点上,然后打开这个prefab,看一下这两个脚本 对应的 __type__值,
2,关掉creator
3,然后 把 原脚本的__type__值替换一下
4,ok了

只是过建议,其他方法都可以用,只是十分麻烦,还不如重新拖,所有就看官方能不能出一个方便的替换方案而已

正解…

替换uuid就可以了,替换预制或者场景里面"type"的值,自定义脚本是一般是这样的uuid: 78a32afWrRLiKqpT3C5Immq

我只是想想官方加一个功能,毕竟我们自己想的方案 都是各种改,都挺麻烦的。做到编辑器里面,直接拖动覆盖,然后绑定的信息也没有掉,那不是很方便么。

24年了,有这功能了吗