Cc.PrefabInfo的fileId是怎么维护的?

事先准备好Prefab A

  1. 在场景上创建一个Node B,把A拖到B里作为子Node,然后把B保存为Prefab。
    这时B.prefab里A节点的的fileId和A.prefab里的A节点的fileId不一样.

  2. 在场景上创建Node C,保存为prefab。然后把A拖到C里作为子Node,再保存C。
    这是C.prefab里A节点的fileId和A.prefab里A节点的fileId是一样的。

请问,第一种情况为什么要修改fileId呢?这样子就没法追踪最初的Prefab,也就没法处理嵌套了。能否和第二种情况一样,保持fileId一致?

设计就是这样的,因为 prefab 暂时不支持嵌套

谢谢反馈,这是最近才修复的 bug,下个版本就不会这样咯

那可以在PrefabInfo里增加一个新的属性,来保存其对应的原始的Prefab的信息吗?这样可以通过第三方的方法来做嵌套。
而且如果没有这些数据,以后就算支持嵌套了,旧的工程也没法利用。

官方会尽快实现嵌套的。至于旧工程,我不建议提前埋雷,容易出现兼容性问题。以后就算支持嵌套,也应该是要手工重新升级 Prefab。