使用Prefab动态创建的时候产生的UUID有无法产生唯一值的问题
代码如下:
var wood = instantiate(this.wood);
wood.setWorldPosition(new Vec3(-1, 250, 1));
wood.name = wood.uuid; //这里获取产生的组件后的UUID
this._block_name = wood.name;
后台跟踪发现UUID生成有问题
使用Prefab动态创建的时候产生的UUID有无法产生唯一值的问题
代码如下:
var wood = instantiate(this.wood);
wood.setWorldPosition(new Vec3(-1, 250, 1));
wood.name = wood.uuid; //这里获取产生的组件后的UUID
this._block_name = wood.name;
后台跟踪发现UUID生成有问题

你把
wood.name = wood.uuid;
改成
console.log(wood.uuid);
试试看
var wood = instantiate(this.wood);
wood.parent = find("Canvas/roll_box")
wood.setWorldPosition(new Vec3(-1, 250, 1));
wood.name = wood.uuid; //这里获取产生的组件后的UUID
this._block_name = wood.name;
你这样在试试
感谢大家的积极协助。问题发现了,跟大家分享一下,我的理解。
这个问题是因为cocos的node中的name不能包含“/”斜杠,所以遇到UUID中含有这种字符的都插入name失败,但cocos做了个插入补充机制,插入的内容失败后,自己把node的原名插入,就产生了有时候插入的不是UUID的结果了。
补充一下,我是用的是3.8.4版本