AvatarPermission(Scriptable Item)
└ OverlapCollider(Overlap Detector Shape)
const posout = new Vector3(0, 0, -15); // 退出先位置情報
const avtarr = ["111", "222", "333"]; // 滞在可能なアバターID
$.onUpdate(deltaTime => {
if (!$.state.initialized) {
$.state.initialized = true;
$.state.overlapPlayers = [];
$.state.time = 0.0;
}
let previousOverlapPlayers = $.state.overlapPlayers;
let currentOverlapPlayers = [];
let overlaps = $.getOverlaps();
overlaps.forEach(overlap => {
$.state.playerHandle = overlap.handle;
if ($.state.playerHandle == null) return;
currentOverlapPlayers.push($.state.playerHandle.id);
let avatarId = $.state.playerHandle.getAvatarProductId();
let judge = false;
for(let i = 0; i < avtarr.length; i++){
if (avatarId === avtarr[i]) {
judge = true;
}
}
if(!judge){
$.state.playerHandle.setPosition(posout);
}
});
$.state.overlapPlayers = currentOverlapPlayers;
});
退出先位置情報にワールドゲートを仕込めば、ワールドからはじき出すことも可。