【Cluster】特定のアバター以外をはじき出すスクリプトサンプル

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;

});

退出先位置情報にワールドゲートを仕込めば、ワールドからはじき出すことも可。

タイトルとURLをコピーしました