Ok, rigidbody layer collision configure works. Not enough custom editor functionality ((
var RbGroup = pc.createScript('rbGroup');
RbGroup.attributes.add('GROUP', { type: 'string', default: "" });
RbGroup.attributes.add('group_DYNAMIC' , { type: 'boolean', default: true });
RbGroup.attributes.add('group_STATIC' , { type: 'boolean', default: false });
RbGroup.attributes.add('group_KINEMATIC', { type: 'boolean', default: false });
RbGroup.attributes.add('group_ENGINE_1' , { type: 'boolean', default: false });
RbGroup.attributes.add('group_TRIGGER' , { type: 'boolean', default: false });
RbGroup.attributes.add('group_ENGINE_2' , { type: 'boolean', default: false });
RbGroup.attributes.add('group_ENGINE_3' , { type: 'boolean', default: false });
RbGroup.attributes.add('group_USER_1' , { type: 'boolean', default: false });
RbGroup.attributes.add('group_USER_2' , { type: 'boolean', default: false });
RbGroup.attributes.add('group_USER_3' , { type: 'boolean', default: false });
RbGroup.attributes.add('group_USER_4' , { type: 'boolean', default: false });
RbGroup.attributes.add('group_USER_5' , { type: 'boolean', default: false });
RbGroup.attributes.add('group_USER_6' , { type: 'boolean', default: false });
RbGroup.attributes.add('group_USER_7' , { type: 'boolean', default: false });
RbGroup.attributes.add('group_USER_8' , { type: 'boolean', default: false });
RbGroup.attributes.add('COLLISION_MASK', { type: 'string', default: "" });
RbGroup.attributes.add('mask_DYNAMIC' , { type: 'boolean', default: true });
RbGroup.attributes.add('mask_STATIC' , { type: 'boolean', default: true });
RbGroup.attributes.add('mask_KINEMATIC', { type: 'boolean', default: true });
RbGroup.attributes.add('mask_ENGINE_1' , { type: 'boolean', default: true });
RbGroup.attributes.add('mask_TRIGGER', { type: 'boolean', default: true });
RbGroup.attributes.add('mask_ENGINE_2' , { type: 'boolean', default: true });
RbGroup.attributes.add('mask_ENGINE_3' , { type: 'boolean', default: true });
RbGroup.attributes.add('mask_USER_1' , { type: 'boolean', default: true });
RbGroup.attributes.add('mask_USER_2' , { type: 'boolean', default: true });
RbGroup.attributes.add('mask_USER_3' , { type: 'boolean', default: true });
RbGroup.attributes.add('mask_USER_4' , { type: 'boolean', default: true });
RbGroup.attributes.add('mask_USER_5' , { type: 'boolean', default: true });
RbGroup.attributes.add('mask_USER_6' , { type: 'boolean', default: true });
RbGroup.attributes.add('mask_USER_7' , { type: 'boolean', default: true });
RbGroup.attributes.add('mask_USER_8' , { type: 'boolean', default: true });
RbGroup.prototype.initialize = function() {
this.app.on('rbGroup:set', function() { this.updateRb(); }.bind(this), this);
this.updateRb();
};
RbGroup.prototype.postInitialize = function() { this.updateRb(); };
RbGroup.prototype.updateRb = function() {
if (this.entity.rigidbody) {
this.entity.rigidbody.mask = this.getMask();
this.entity.rigidbody.group = this.getGroup();
}
};
RbGroup.prototype.getGroup = function() {
return (this.group_DYNAMIC === true ? 1 : 0) +
(this.group_STATIC === true ? 2 : 0) +
(this.group_KINEMATIC === true ? 4 : 0) +
(this.group_ENGINE_1 === true ? 8 : 0) +
(this.group_TRIGGER === true ? 16 : 0) +
(this.group_ENGINE_2 === true ? 32 : 0) +
(this.group_ENGINE_3 === true ? 64 : 0) +
(this.group_USER_1 === true ? 128 : 0) +
(this.group_USER_2 === true ? 256 : 0) +
(this.group_USER_3 === true ? 512 : 0) +
(this.group_USER_4 === true ? 1024 : 0) +
(this.group_USER_5 === true ? 2048 : 0) +
(this.group_USER_6 === true ? 4096 : 0) +
(this.group_USER_7 === true ? 8192 : 0) +
(this.group_USER_8 === true ? 16384 : 0);
};
RbGroup.prototype.getMask = function () {
return (this.mask_DYNAMIC === true ? 1 : 0) +
(this.mask_STATIC === true ? 2 : 0) +
(this.mask_KINEMATIC === true ? 4 : 0) +
(this.mask_ENGINE_1 === true ? 8 : 0) +
(this.mask_TRIGGER === true ? 16 : 0) +
(this.mask_ENGINE_2 === true ? 32 : 0) +
(this.mask_ENGINE_3 === true ? 64 : 0) +
(this.mask_USER_1 === true ? 128 : 0) +
(this.mask_USER_2 === true ? 256 : 0) +
(this.mask_USER_3 === true ? 512 : 0) +
(this.mask_USER_4 === true ? 1024 : 0) +
(this.mask_USER_5 === true ? 2048 : 0) +
(this.mask_USER_6 === true ? 4096 : 0) +
(this.mask_USER_7 === true ? 8192 : 0) +
(this.mask_USER_8 === true ? 16384 : 0);
};```