【Cluster】特定のアクセサリー着用時以外はじき出すスクリプトサンプル

エリア判定

AccessoryPermission(Scriptable Item)
└ OverlapCollider(Overlap Detector Shape)

const posout = new Vector3(0, 0, -15); // 退出先位置情報
const accarr = ["アクセサリーID", "アクセサリーID", "アクセサリーID"]; // 滞在可能なアバター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);
    //if (previousOverlapPlayers.includes($.state.playerHandle.id)) return;

    let myaccarr = $.state.playerHandle.getAccessoryProductIds();
    let judge = false;
    for(let i = 0; i < accarr.length; i++){
      for(let j = 0; j < myaccarr.length; j++){
        if (myaccarr[j] === accarr[i]) {
          judge = true;
        }
      }
    }
    if(!judge){
      $.state.playerHandle.setPosition(posout);
    }

  });
  $.state.overlapPlayers = currentOverlapPlayers;

});

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

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