如果你曾经复制了一个嵌套的ScriptableObject,接着发现编辑克隆也会修改原始数据,那么你就遇到了这个问题。
Ctrl+D进行浅拷贝,嵌套SO引用只是指向相同的资源。修复它需要递归的C#反射调用,并且不美观。
我为此建立了一个工具。Deep Clone会遍历整个SO树,包括自定义类,结构体,数组和列表,所有嵌套的ScriptableObject都会被复制为新的资源,并且重新连接内部引用,以使克隆完全独立。只需要一个按钮点击。编辑器时间。
如果你想保留共享的引用,可以使用[[ShallowClone]]属性跳过它们。
如果你有任何问题或者想了解它的内部工作原理,我很乐意回答。
评论 (0)