为什么cc.Node没有列出__instanceId字段呢?对这个字段能进一步说明一下吗?
官方文档对uuid说的“用于编辑器使用的 uuid,在构建项目之前将会被剔除。”是什么意思呢?uuid在正式环境中不能用吗?
能说明一下cc.ClassManager.getNewInstanceId()的生成原理吗?怎么处理的重复呢,是永远不重复还是单次运行游戏不重复呢?
可以直接使用uuid 至少我目前打包web-desktop不会被剔除。
uuid是用当前时间算的 还是有有一定几率重复 不过微乎其微。
uuid不是传统的uuid,我打印了下,长“Comp.516”这样,我觉得uuid的生成和__instanceId的生成应该是同一个规则吧,维护一个全局自增值,每次调用自增,单次启动游戏会重置,所以只能用于临时标记内存组件,而不能作为持久化存储用?不知道理解的对不对,需要官方给个回应。另外,不知道cocos有没有api可以生成永久唯一的uuid
这是内部用的字段,你不需要用到
看来文档没写清楚。意思是这个 uuid 不一定会被序列化。如果游戏发布之后,uuid 可能会改变。在正式环境中可用,能够保证当次游戏启动后 uuid 不重复。
就是一个简单的递增索引,单次不重复
在项目发布后,uuid 只能用于临时标记内存组件,在编辑器中,uuid 就是真正的 uuid 可以用来序列化。
编辑器中可以用 require('node-uuid').v4() 来获取一个 uuid
“编辑器中可以用 require(‘node-uuid’).v4() 来获取一个 uuid“,编辑器中使用是什么意思?node-uuid这个模块在引擎中吗?为啥我在脚本中用这段代码报找不到这个模块呢?
编辑器中的意思是,这个模块不在引擎中。这个模块只能用在编辑器插件。如果你要在引擎中生成 uuid,要自己导入插件。