この記事は「PlayCanvas | GWアドベントカレンダー」8日目の記事です。
PlayCanvas Editor APIが便利です。
ユーザーマニュアル(触りはこちら)
https://developer.playcanvas.com/ja/user-manual/designer/editor-api/
ドキュメント(詳しく調べる場合はこちら)
The PlayCanvas Editor API. Contribute to playcanvas/editor-api development by creating an account on...
github.com
const entities = editor.entities.list();
const renders = editor.entities.root.filter(entity => entity.has('components.render'));
for(const render of renders){
if(render.get('components.render.asset')){
render.addComponent('collision');
render.set('components.collision.type','mesh');
render.set('components.collision.renderAsset',render.get('components.render.asset'));
}
}
render.set('components.render.batchGroupId',100000)
batchGroupIDは、entity.render._batchGroupId
より参照できます。noneの場合は-1
でそれ以降作成順に100000,100001,100002...
となります。
const assets = editor.assets.list()
let textures = {}
for(const asset of editor.assets.list()){
if(asset.get('type') == 'texture'){
textures[asset.get('name').replace('.png','')] = asset.get('id');
}
}
for(const asset of editor.assets.list()){
if(asset.get('type') == 'material'){
asset.set('data.diffuseMap',textures[asset.get('name')]);
}
}
随時更新予定