我不知道现在是不是临时调的一个版本
现在组件属性表变更后所有属性都被重置了
就不能判定一下么,属性表里存一下类型名称,当新属性类型与保存的类型不一致的时候再重置不行?
现在这样通用组件升级不是要了命了么。。。我改一个属性所有相关组件都需要重新设置属性值?
-
Creator 版本: 3.4
-
目标平台:
-
重现方式:必现
-
首个报错:
-
之前哪个版本是正常的: 3.3.2
-
手机型号:
-
手机浏览器:
-
编辑器操作系统:
-
重现概率:
我不知道现在是不是临时调的一个版本
现在组件属性表变更后所有属性都被重置了
就不能判定一下么,属性表里存一下类型名称,当新属性类型与保存的类型不一致的时候再重置不行?
现在这样通用组件升级不是要了命了么。。。我改一个属性所有相关组件都需要重新设置属性值?
Creator 版本: 3.4
目标平台:
重现方式:必现
首个报错:
之前哪个版本是正常的: 3.3.2
手机型号:
手机浏览器:
编辑器操作系统:
重现概率:
感谢反馈,我们确认下
找到原因了,在prefab编辑状态下,通过外部工具修改了组件源码保存切回后,属性面板的值都会重置,但是你可以通过close并不保存prefab的方式关闭编辑模式,重新打开prefab即可
这个问题需要担心的是编辑了一半的prefab没保存,然后去编辑源码了,回来需要纠结是保属性值还是保界面编辑的内容
我这好像没复现出来啊,能否录个屏,或者给个demo?
我这边在Prefab编辑模式下新加个属性,前面的属性值没有发生改变,不知道我理解的对不对?

我刚又开了一个新项目,确实没有重现
但是我正在使用的项目里就有这个问题
我一会看看能不能把资源复制到新项目里复现这个问题
可能是资源问题吧,这个prefab资源是我在3.3.2版里遭遇prefab损坏的问题,通过拖prefab到一个临时场景里,然后一个个组件检查,去掉异常节点后保存下来的,现在打开这个prefab的时候会有一堆的反序列化异常
2021-12-23 12
33 [Scene] Value dump failed.
at ValueTypeDump.encode (Y:\CocosDashboard_1.0.17\resources.editors\Creator\3.4.0\resources\app.asar\builtin\scene\dist\utils\dump\types\value-type-dump.ccc:1:242)
at _encodeByType (Y:\CocosDashboard_1.0.17\resources.editors\Creator\3.4.0\resources\app.asar\builtin\scene\dist\utils\dump\encode.ccc:1:5022)
at encodeObject (Y:\CocosDashboard_1.0.17\resources.editors\Creator\3.4.0\resources\app.asar\builtin\scene\dist\utils\dump\encode.ccc:1:6593)
at Y:\CocosDashboard_1.0.17\resources.editors\Creator\3.4.0\resources\app.asar\builtin\scene\dist\utils\dump\encode.ccc:1:3694
at Array.map ()
at encodeComponent (Y:\CocosDashboard_1.0.17\resources.editors\Creator\3.4.0\resources\app.asar\builtin\scene\dist\utils\dump\encode.ccc:1:3622)
at Y:\CocosDashboard_1.0.17\resources.editors\Creator\3.4.0\resources\app.asar\builtin\scene\dist\utils\dump\encode.ccc:1:1669
类似这样的
有没有办法保留 prefab 的布局,删除里边的属性值? 现在这个资源连重置根节点component的属性都做不到。。。
查问题过程中,我又把一个prefab整坏了。。。啊,真服了
一个component
@property(Color)
c:Color = null;
这样定义会在载入时报刚刚我说的序列化异常
然后我试着改成这样
@property(Color)
c:Color = Color.TRANSPARENT;
然后prefab载入不进来,一直转圈
然后我又试着改成
@property(Color)
c:Color = new Color(0, 0, 0, 0);
然后载入prefab 后所有节点红字,控制台提示
2021-12-23 12:42:14 [Scene] Cannot read property ‘_prefab’ of undefined
6
2021-12-23 12:42:15 [Window] parameter error
然后我试着删除这个属性然后重新打开 prefab
然后。。。这个prefab就是所有节点红字状态,已经无法使用了
可以把有问题的Prefab发我看一下是什么问题
那个红字节点的问题,可能是编辑器环境异常了,关掉编辑器重新打开后应该能恢复
组件类源码修改导致的异常,我应该通过什么步骤来复现呢?
讲真。。我也不知道,prefab太复杂了,我的工程又不方便发源码,我自己先找找原因
我现在有个问题希望你先帮我解答一下 property 类型为 Color 的,我应该怎么定义?


我这么写看起来是正常的。
NewProject.zip (1.9 MB)
重现出来了,你可以打开工程,编辑 test.prefab
这个状态下,你双击NewComponentB.ts进行修改,比如 把
@property(Node)
nodeT1: Node = null
改为
nodeT2: Node = null
然后保存,返回编辑器
你就会发现test根节点的NewComponentA组件中, b1的引用消失了
收到,我看一下~
又发现一个新的问题。。。。 在编辑prefab的时候,不小心把一个 粗体节点拖到了另一个粗体节点内部。。。然后拖不出来了,他被判定为是另一个prefab的子节点,无法拖出
收到,我会一起修掉
还有一个bug,在编辑prefab(A)的时候,拖进来另一个prefab(B)的引用,并修改其(B)子元件属性后保存关闭该prefab(A)并不会保存A中B的子元件修改后的属性值,只能再次打开该prefab(A)并重新修改并再次保存才能生效
我按你的描述操作了一下,没有复现,你看看录屏是不是和你描述的一致哈~你修改的是什么属性呢?
