代码没赋值,纯场景运行,肯定是有用才会去编译引擎,问题是原代码都进不去,原型拦截也没用吧
你没有动态加载去赋值那咋触发setter 静态的可能是直接操作_私有变量
你直接说你要实现什么,改肯定能改。改源码或者简单功能加一个劫持都可以
预制体或者场景中的Sprite加载设置好的资源不走spriteFrame函数,直接走的赋值_spriteFrame。手动赋值才走的spriteFrame函数。
我的目的想调试场景预制体的节点是如何实现Sprite的spriteFrame的流程
我想知道json文件是如何序列化sprite的SpriteFrame对象,我现在只调试到SpriteFrame的序列化接口
原来如此,直接走的赋值_spriteFrame,那这个要怎么查它的实现,主要是我现在序列化json,解析出来的sprite的spriteFrame是为空的
那你得看更底层的资源加载管线。资源加载有两步,下载解析json。然后再是真实加载资源。所有preload预加载只会解析json。不会加载实际资源
有看的,我现在SpriteFrame序列化是有成功的,但是序列化成sprite的SpriteFrame对象,这个没找到,试过把_spriteFrame变成get/set,好像也不行
Cocos 预制体 会在反序列化的时候解析 建立 spriteFrame 的 uuid 和 Sprite 的依赖关系, 等 spriteFrame加载完后,赋值到Sprite的变量_spriteFrame 中。
那这个有没办法序列化完spriteFrame数据,对应是哪个sprite对象?
Cocos 预制体中每个Sprite 会有对应的uuid的spriteFrame。 你要是你自己创建的json,而不是通过Cocos编辑器生成的,你需要自己建立依赖关系。
你还不如直说最开始是想干嘛 哪一步遇到了问题 是想知道spf的创建流程还是啥
,我想知道序列化sprte组件的时候是什么时候赋值spriteFrame上去
engine\cocos2d\core\asset-manager 过一遍资源加载流程的源码就差不多知道了
会生成一个js代码,通过执行这个js代码 返回一个node,赋值不是通过getset 是直接赋值到了私有属性上面,后面都是clone 这个node,好像还做了只有多次实例化的prefab 才会缓存这个node,不然每次执行 生成的js代码
可以去断点实例化Prefab过程
听着好复杂,方便截个图说明下吗 
谢谢大佬的截图说明和资源管理系统解读的链接

