已解决!取节点所有子节点并保存成json数据的方法在1.2里

const projectPath = window.cce.project as string; const fs = window.Editor.require(‘fs’); 这两个生成地图json数据的方法为什么在1.2粒不能用了呢?


首先要感谢VisualSJ和arsen2010耐心解答,没想到官方这么尽责,cocos以后必然壮大,加油~!

已解决
1 去掉window,直接使用cce.project as string来获取项目路径。
2 直接使用require(‘fs’) 来获取fs。
3 注意这种只能在编辑器里使用,无法在游戏脚本里使用。

使用该方法可以非常方便的生成地图数据资源,点击图片中红框所示的复选框可以动态生成地图中节点的json数据。
所有子节点必需是预制体。

具体请看官方源码:

1 生成json数据
https://github.com/cocos-creator/example-3d/blob/master/physics-3d/assets/demo/simple-car/scripts/debug/MapSpawner.ts
2 根据数据往节点添加预制体
https://github.com/cocos-creator/example-3d/blob/master/physics-3d/assets/demo/simple-car/scripts/debug/MapLoaderTesing.ts

官方有没有新的解决方案啊 这个生成地图的方式非常好用 求教啊:pray:

你在哪个地方写的?
有几个区域是隔离的,没有 Editor,cce 是在场景里才有的对象。

能不能简单的说下使用场景和功能?

常规方式取项目路径为 Editor.Project.path

这段代码是在example-3d/physics-3d/assets/demo/simple-car/scripts/debug/MapSpawner.ts 这个脚本里
主要是用来预生成地图场景里的预制体数据json文件的
场景文件example-3d/physics-3d/assets/demo/simple-car/editor-only/MapCocos.scene 是这个场景使用的这个组件

取到路径后 怎么写文件呢?fs不让用了啊

Editor.Project.path 这个是扩展里用的吗?现在这个用的是组件脚本

如果是项目脚本里的话 cce.project 可以先用,之后我们会规范这些数据的来源~
我在 1.2 试了下,cce.project 还在的吖。

直接使用 require(‘fs’); 读取 fs 模块~

谢谢您的解答。这个就是项目里的脚本,我在编辑器里使用会在控制台报错。这里需要专门设置脚本是项目使用吗?我该怎么做呢?

太感谢啦!原来不用加window就可以了 不过vscode上会有错误提示稍稍有点不完美。

补充一句:
const fs = require(‘fs’);从原来位置拿出来,放到脚本顶部引入的位置,才有效

按照此方法并没有解决啊,3.0.0版本