cocoscreator 扩展插件 想做一个将prefab资源自动添加到场景编辑器中的插件

cocoscreator 编辑器 我想做一个扩展插件,将prefab资源自动添加到场景编辑器中,然后保存场景运行,现在不知道,怎样将prefab能加载到场景编辑器中,没找到相应接口,求回复 @huanxinyin

你的自动添加的意思是动态加载吗

不是动态加载,是直接在编辑器中自动生成节点,模拟我们手动拖预制体到场景中生成的节点。

去插件商店下几个开源的插件看看是怎么写的就大概知道了;先说下思路:
1、先打开指定场景 _Scene.loadSceneByUuid(sceneUuid, callback)
2、scene-script场景脚本中使用 cc.find(“Canvas”) 获取当前场景的canvas以及node,
3、 cc.loader.load({ type: “uuid”, uuid:prefabUuid }, callback) 拿到prefab的节点数据,addchild到场景node中,
4、Editor.Ipc.sendToPanel(“scene”, “scene:stash-and-save”) 发送IPC消息保存当前场景

谢谢!按照你的思路,目前能够加载到预制体,但是有一个新的问题,加载后放入场景中,确没有显示在场景中,打印场景数量,显示已经有了,就是没有渲染出来,是不是还需要调用一个通知渲染的函数,才能把它渲染出来。

没有调用IPC消息保存刷新场景

另外,看你打这么多log是不是不会插件调试?在插件窗口呼出开发者工具就可以像调试浏览器一样调试插件的代码了(非主进程main.js)

调用了 这个 Editor.Ipc.sendToPanel(“scene”, “scene:stash-and-save”) 没有用,没有显示 , 确实不会插件调试,第一次做插件

切换一下场景有显示吗?如果有就是没有刷新当前场景,可以试试Editor.assetdb.refresh(sceneUrl, callback) 刷新一下资源管理器的资源

切换场景 ,保存场景都试过,重新打开后没有加载的那个对象,不知道这里添加后是不是要通知其他所有模块来修改和记录信息,不仅仅是通知scence 我猜测,没试出来

谢谢你,解决了!原因找到了,因为每次我都是新建场景,新建场景后再去加载预制体,生成节点,这个节点其实是加载到了关闭的场景上,没有加载到新建的场景中,导致的,我在新建的场景后,过2秒在去新建节点就OK了,谢谢你,太感谢了!

打扰大佬了.我想求助一下 插件调试的方法。我看了 大佬的简单介绍一知半解,还希望大佬能在空闲时间 稍稍详细介绍一下,万分感谢了。。

mark

为什么我在扩展inspector的时候不能直接调用cc呢?

自问自答把,2.2.2之后得把面板潜入编辑器,不能单独拿出来。2.3.2还未修复。

使用 _Scene.loadSceneByUuid(sceneUuid, callback) 没有反应 大佬? 这是为什么 我是2.3.4, 已经获取到uuid了