3.8.1 正式版的link状态prefab的疑问


问题1: link状态内部节点还能编辑和移动,如果内部这个图片修改了,这个修改的节点不起作用
image
我怎么知道到底哪些节点动过了,出现的问题就是,重构和修改的时候,以为只要修改一个地方,结果发现很多地方没有变更


问题2: link状态可以添加节点
image


问题3: 编辑面板修改值以后ctrl+s,切换其他prefab或者场景会出现
image
image


问题4:
在这个节点点击同步以后,所有节点缩放都被修改了,但是我其实只是增加一个图,并不希望他修改,然后比较致命的是,ctrl+z以后,其他节点并不能恢复缩放值,只是移除了这个节点图片


然后诡异的是,我再手动调整成1.0以后,再同步就不会出现修改缩放的情况

而且即使我修改了prefab的scale属性

场景中再无反映
image

问题5
组件脚本绑定操作问题
prefab里面增加了一个image sprite属性绑定,在场景里面删了


再次修改prefab的绑定
image
场景节点无变化
image
也没有任何感知变更
但是我在prefab里面删除这个脚本组件,场景中也会被删除
image
image

NewProject_2.zip (68.9 KB)

顶你丫的先~

问题1 :场景中的 prefab 实例如果有修改,会吧修改记录在 propertyOverrides 中,所以如果有修改过的实例的属性就不会再被原来的 prefab 覆盖,目前确实没有像类似 删除 Component 有个 UI 的提现。
image
问题2: 是可以增加节点的,他会单独记录在这个场景实例中,不会记录在原始的 prefab 资源里,除非你点了 更新到资源 的按钮image ,他才会这份实例,同步到原始的 prefab 资源中保存起来。
问题3: prefab 有修改离开后弹出保存提示,暂时没有明白你说的这部分是有什么问题吗?
问题4:这个问题我没太看明白,能否再说明下?点击同步是指更新到资源吗?如果是的话,跟问题2 一样,他会保存到原始的 prefab 资源中,让所有的 prefab 发生改动。
问题5:其实跟问题1是一样的,现在咱们 prefab 会记录修改,可以认为是 diff,所以你改动过的属性会另外保存从而原始的 prefab 的资源修改不会在被覆盖回来。比如这边的 NewComponent 的 sp 这个属性修改过了,所以不会被同步,但是 NewComponent 这个组件并没有修改,所以会被同步上去(这里就是删除)

问题3,已经保存成功,但是鼠标离开以后切换还是会提示保存
问题4有2个核心问题
1.应用到prefab,会修改其他地方的scale为0.6,按ctrl+z,并不能恢复其他prefab的scale为1,其他prefab变成了0.6,不可逆
2.我手动修改其他节点为1.0以后,再次修改prefab的scale为2,不能同步到其他节点,其他节点仍然为1,就是我即使设置回1,还是不能同步,按照解释就是被修改过了,所以即使数值一样,也不会被同步,那我根本就看不出来他到底有没有修改过

问题3: 我复现了,应该是bug,我记录一波,感谢。。。
问题4.1: 我这按照你说的步骤,先拖了3个prefab实例到场景,改动某个实例scale并同步到资源(我这该的根节点),再 ctrl+z 的结果是,第一次ctrl+z 会还原prefab修改,并把另外两个没修改过的 prefab 的scale 设置回1,再按 ctrl+z 会撤回最早那个修改的节点的scale值,并不会出现你说的问题,是否是我步骤有错?

我刚试了几次,ctrl+z正常恢复,只有在apply以后,切换一次prefab看一眼,再回场景会失效,但是和上面截图的表现也不一致,不知道怎么触发的

另一个问题是,假设prefab是1,节点我修改成2,然后我想把propertyOverrides去掉,再跟随同步的话,修改成1,也不能跟随同步

目前只支持全部恢复,你可以选中场景中的prefab实例,然后inspector 那边点从资源还原,这样就会恢复。