✏️

【clusterベータ】ユーザー名つきで(文字の)あいさつをするアイテム

2023/12/06に公開

clusterベータ機能により、テキストの入出力が可能になりました!
ということで「てきすとてすと。」というワールドを公開しています。
https://cluster.mu/w/d152b834-06cf-48a7-a3cd-05c904ae8258

アイテムの近くに来たユーザーの名前をよぶ


このワールドでは、赤いアイテムの近くに来るとユーザーの名前をつけて「見つけた!」と出るようになっています。
ちょっとテキストを変更し、あいさつするようにしてみました。


このように、スクリプトアイテムの子にtextObjという空のオブジェクトをつくります。小文字・大文字に気をつけてください。


そして textObjに、TextViewを付けてください。 位置は適当に調整しましょう。

const subNode = $.subNode("textObj");

const updatePerSec = 0.5; //何秒に一度チェックするか?
const distance = 1.5; //何m以内に来たらあいさつするか?

function initProc() {
  $.state.isInitialized = true;
  $.state.tick = 0;
}

$.onUpdate((deltaTime) => {
  //初期化処理
  if (!$.state.isInitialized) {
    initProc();
  }

  //一定間隔でしか更新しない
  $.state.tick += deltaTime;
  if($.state.tick < updatePerSec) return;
  $.state.tick -= updatePerSec;

  let str = "";
  //近くのプレイヤーの一覧を取得
  $.getPlayersNear($.getPosition(), distance).forEach((player) => {
    //そのユーザーの名前+あいさつをstrに追加していく
    let userDisplayName = player.userDisplayName;
    str += userDisplayName + "さんこんにちは! ";
  });

  subNode.setText(str);

});

あとはこのスクリプトを親につければOKです。

Discussion