エンティティ操作
すべてのエンティティを取得する
const entities = editor.entities.list();renderコンポーネントを持つエンティティをすべて取得する
const renders = editor.entities.root.filter(entity => entity.has('components.render'));renderコンポーネントを持つエンティティ全てに同一のmeshを設定したコリジョンコンポーネントを設定する
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()マテリアル A のdiffuse Mapに Texture A.pngをセットする
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')]);
}
}
随時更新予定




