アイテム自身を操作するハンドルです。個々のアイテムごとに存在し、$オブジェクトからアクセスできます。

Hierarchy

  • ClusterScript

Properties

angularVelocity: Vector3

アイテムの角速度(グローバル座標)を取得・変更します。

MovableItemでない場合は0ベクトルを返します。 物理挙動をするMovableItemでない場合、変更しようとすると例外になります。 Grab中などに行われた変更は無視されます。

id: string

空間内のアイテムを一意に表すIDの文字列表現です。 アイテムのItemHandleに対するItemHandle.idが返す値と同じです。

itemHandle: ItemHandle

アイテムのItemHandleを返します。

itemTemplateId: ItemTemplateId

クラフトアイテムの元になっているアイテムテンプレートのIDです。 ワールドアイテムの場合、この関数はnullを返します。 createItem等で利用できます。

state: StateProxy

アイテムごとのstateへのアクセスを提供します。 read/writeアクセスが可能です。stateのプロパティへのアクセスにより、そのプロパティ名をkeyとしてstateへアクセスすることができます。

Example

未定義のプロパティをreadしたときはundefinedが初期値になります。

let v = $.state.exampleKey; // "exampleKey"というkeyの値を読み込む。1度も書き込んでいないとき、値はundefined
if (v === undefined) { v = 0.0; }
$.state.exampleKey = v + 1;

stateには Sendable 型の値を書き込み保存することができます。

具体的には、数値、文字列、boolean、Vector2Vector3QuaternionPlayerHandleItemHandle、そしてそれらの配列と文字列をキーとしたobjectが利用可能です。

Example

$.state.exampleKey1 = 1; // numberを書き込む
$.state.exampleKey2 = "hello"; // stringを書き込む
$.state.exampleKey3 = true; // booleanを書き込む
$.state.exampleKey4 = { foo: "bar" }; // objectを書き込む
$.state.exampleKey5 = [1, 2, 3]; // arrayを書き込む
$.state.exampleKey6 = { // 複雑なオブジェクトを書き込む
array: [1, 2, 3],
object: { foo: "bar" },
};

Example

配列やオブジェクトなどをstateに反映させるためには再代入が必要です。

$.state.exampleKey = [1, 2, 3];
// $.state.exampleKey.push(4); // このように書いてもstateに反映されない

// このように書くとstateに反映される
const v = $.state.exampleKey;
v.push(4);
$.state.exampleKey = v;
useGravity: boolean

このアイテムが、通常時に重力の影響を受けるかを取得・変更します。 Grab中などはアイテムは重力の影響を受けませんが、useGravityには影響がありません。

物理挙動をするMovableItemでない場合、falseを返します。 物理挙動をするMovableItemでない場合、変更しようとすると例外になります。

velocity: Vector3

アイテムの速度(グローバル座標)を取得・変更します。

MovableItemでない場合は0ベクトルを返します。 物理挙動をするMovableItemでない場合、変更しようとすると例外になります。 Grab中などに行われた変更は無視されます。

Methods

  • Beta

    アイテムの重心に、現在のPhysicsUpdate中で有効な力を加えます。 onPhysicsUpdateのコールバック内部でのみ使用可能で、それ以外の箇所で呼び出すと例外になります。

    Parameters

    • force: Vector3

      力 (グローバル座標)

    Returns void

  • Beta

    アイテムの指定位置に、現在のPhysicsUpdate中で有効な力(グローバル座標)を加えます。 onPhysicsUpdateのコールバック内部でのみ使用可能で、それ以外の箇所で呼び出すと例外になります。

    Parameters

    • force: Vector3

      力 (グローバル座標)

    • position: Vector3

      力点 (グローバル座標)

    Returns void

  • Beta

    アイテムの重心に撃力を加えます。 重心以外に撃力を加えたい場合はaddImpulsiveForceAtを使用してください。

    Parameters

    • impulsiveForce: Vector3

      撃力 (グローバル座標)

    Returns void

  • Beta

    アイテムの指定位置に撃力を加えます。

    Parameters

    • impulsiveForce: Vector3

      撃力 (グローバル座標)

    • position: Vector3

      力点 (グローバル座標)

    Returns void

  • Beta

    アイテムの重心に角力積を加えます。

    Parameters

    • impulsiveTorque: Vector3

      角力積 (グローバル座標)

    Returns void

  • Beta

    アイテムの重心に、現在のPhysicsUpdate中で有効なトルクを加えます。 onPhysicsUpdateのコールバック内部でのみ使用可能で、それ以外の箇所で呼び出すと例外になります。

    Parameters

    • torque: Vector3

      トルク (グローバル座標)

    Returns void

  • アイテムのItemAudioSetListに含まれる、itemAudioSetIdに指定したidの音声を参照するApiAudioオブジェクトを返します。

    ItemAudioSetListの詳細はドキュメントを参照してください

    Parameters

    • itemAudioSetId: string

    Returns ApiAudio

  • 空間の外部にリクエストを送信します。 レスポンスはonExternalCallEndで受け取ります。 この呼び出しを利用するためには、開発者自身が外部のサーバーを用意する必要があります。

    頻度の制限:

    callExternalを呼び出すことができる頻度には制限があります。

    • このスクリプトを実行しているアイテムがクラフトアイテムであった場合、ひとつのアイテムあたり5回/分
    • このスクリプトを実行しているアイテムがワールドアイテムであった場合、ひとつのスペースあたり全てのワールドアイテムの合計で100回/分

    瞬間的にこの制限を超えることはできますが、平均回数はこの制限を下回るようにしてください。 制限を超えている場合、ClusterScriptError (rateLimitExceeded)が発生し操作は失敗します。

    容量の制限:

    requestやmetaがサイズ制限を超えている場合、ClusterScriptError (requestSizeLimitExceeded) が発生します。

    利用方法

    設定: リクエストを受け取るendpoint (外部通信(callExternal)接続先URL) をCreator Kitから登録してください。 endpointはアカウントに紐付き、アカウントに対してひとつだけ設定できます。 リクエストはそのアイテム・ワールドをアップロードしたアカウントのendpointに送信されます。

    Cluster ScriptからcallExternalが呼ばれるたびに、endpointに対してclusterのサーバーからHTTP POST呼び出しが行われます。 POSTに対するresponseに含まれるデータがonExternalCallEndに渡されます。 endpointが5秒のtimeoutを超えても応答しない場合、またエラーを返した場合、失敗と判定されます。 clusterからendpointに対するretryは行いません。

    endpointの仕様

    以下の形式でHTTP POSTに応答する必要があります。 対応しているのはHTTP/1.1およびHTTP/2のみで、HTTP/3による呼び出しには対応していません。 HTTPもしくはHTTPSに対応していますが、公開時にはセキュリティ向上のためHTTPSの利用を推奨します。

    リクエスト

    {
    "request": "...1kB以下の文字列..."
    }

    レスポンス

    {
    "verify": "...verify_token (Creator Kitで取得できます)...",
    "response": "...1kB以下の文字列..."
    }

    verifyフィールドは、開発者自身がendpointを管理していることを確認するために利用されます。 responseフィールドが1kBを超えていた場合、不正な応答とみなし、callExternalは失敗として扱われます。

    不正な応答などでendpointの所有が確認できない場合はcallExternal APIの利用を制限させていただきます。 高負荷で応答ができていないと思われる場合なども、同様に制限やお問い合わせさせていただく場合があります。

    プライバシー

    プレイヤーの個人情報に該当する情報をプレイヤーの同意なく外部に送信することは禁止されています。 そのような利用が疑われる場合、callExternal APIの利用の制限や利用目的のお問い合わせをさせていただく場合があります。 また、当社が不適切と判断した場合、予告なく利用を制限させていただく場合もあります。

    Parameters

    • request: string

      1kB以下の文字列です。外部のサーバーに送信されます。

    • meta: string

      100 byte以下の文字列です。複数のcallExternal呼び出しを識別するために利用できます。空文字や、同じ文字列を複数回指定しても問題ありません。

    Returns void

  • データがsendで送信されるときのデータサイズを計算して、byte数を返します。 sendに対応していないデータの場合はTypeErrorが発生します。

    Parameters

    Returns number

  • Beta

    指定したアイテムを空間内に生成します。アイテムが実際に生成されるまでには遅延があります。

    アイテムの生成は、負荷や権限など様々な理由で失敗する可能性があります。

    生成されるアイテムのテンプレートは以下のいずれかを満たす必要があります。

    • このスクリプトを実行しているアイテムがクラフトアイテムであった場合、そのアイテムのテンプレートと作者が同じ
    • このスクリプトを実行しているアイテムがワールドアイテムであった場合、現在の会場と作者が同じ
    • ベータアイテムである

    クラフト容量が500%を超えるような生成は失敗します。

    アイテムの生成に失敗した場合、返り値のItemHandleは指している先が存在しない状態になり、 ItemHandle.exists がfalseを返すようになります

    アイテムが生成された時、このメソッドを呼び出した時点でのこのアイテムのオーナーが入室中であった場合、そのプレイヤーが生成されたアイテムのオーナーになります。

    ひとつのアイテムは、最大で10回/秒までcreateItemすることができます。 瞬間的にこの制限を超えることはできますが、平均回数はこの制限を下回るようにしてください。 制限を超えている場合、ClusterScriptError (rateLimitExceeded)が発生しcreateItemは失敗します。

    Parameters

    • itemTemplateId: ItemTemplateId

      生成されるアイテムのTemplateId

    • position: Vector3

      生成位置 (グローバル座標)

    • rotation: Quaternion

      生成姿勢 (グローバル座標)

    Returns ItemHandle

  • アイテム自身を破棄します。アイテムが実際に破棄されるまでに遅延があります。

    destroyで破棄するアイテムは以下のいずれかを満たす必要があります。

    • クラフトアイテムである
    • クラフトアイテムでない場合、 Create Item Gimmick で動的に生成されたアイテムである

    destroyできないアイテムに対して呼び出した場合、ClusterScriptError (executionNotAllowed)が発生します。 現状では、ワールド設置アイテムをdestroyすることはできません。

    Returns void

  • 指定した球状の空間内に検知可能なコライダーが存在する自身を除くアイテムのハンドルの一覧を返します。 検知可能なコライダーは、PhysicalShapeが付いているコライダー、OverlapSourceShapeが付いているコライダー、Shapeが付いていない物理衝突をするコライダーです。 検知対象となるレイヤーはDefault, RidingItem, InteractableItem, GrabbingItemレイヤーです。

    Returns

    検知したアイテムのハンドルの配列 (順序は未定義)

    Parameters

    • position: Vector3

      中心 (グローバル座標)

    • radius: number

      半径

    Returns ItemHandle[]

  • Beta

    このアイテムのOverlapDetectorShapeに重なっている、検知対象となる物体を取得します。 検知対象となる物体は、PhysicalShapeが付いているコライダー、OverlapSourceShapeが付いているコライダー、Shapeが付いていない物理衝突をするコライダーです。 このアイテム自身との重なりは含まれません。

    このアイテムもしくは検知対象となる物体のどちらかは、MovableItemであるか、Rigidbodyが付いているか、CharacterControllerがついているか、プレイヤーであるかのいずれかを満たす必要があります。 このアイテムのOverlapDetectorShapeが衝突判定するレイヤーが検知対象となります。 アイテムの生成時点ですでに重なっていたり、重なっている状態で有効化された場合など、空間的には重なっている場合にもこのメソッドの返り値に含まれない場合があります。

    Example

    // 自分と重なっているプレイヤーを数える。
    let set = new Set();
    let overlaps = $.getOverlaps();
    for(let overlap of overlaps) {
    let player = overlap.object.playerHandle;
    if (player != null && !set.has(player.id)) {
    set.add(player.id);
    }
    }
    $.log(`player count: ${set.size}`);

    Returns Overlap[]

  • 指定した球状の空間内のコライダーが存在するプレイヤーのハンドルの一覧を返します。

    Returns

    検知したプレイヤーのハンドルの配列 (順序は未定義)

    Parameters

    • position: Vector3

      中心 (グローバル座標)

    • radius: number

      半径

    Returns PlayerHandle[]

  • アイテムの現在の位置を取得します。値はアイテムのあるグローバル座標系で返されます。

    setPositionで指定された値ではなく、移動中のアイテムの位置が返されることに留意してください。

    Returns Vector3

  • アイテムの現在の姿勢を取得します。値はアイテムのあるグローバル座標系で返されます。

    setRotationで指定された値ではなく、移動中のアイテムの姿勢が返されることに留意してください。

    Returns Quaternion

  • Creator Kit 製ワールドで対象のメッセージを取得します。 Creator Kitのワールドに組み込まれたアイテムでしか利用できません。 クラフトアイテムで実行した場合はエラーになります。

    Example

    // 自身のアイテムを対象に foo という識別子の boolean型のメッセージを取得する。
    $.getStateCompat("this", "foo", "boolean");

    Parameters

    • target: CompatGimmickTarget

      メッセージを取得する対象

      "this": このアイテムへのメッセージを取得します。

      "owner": このアイテムのオーナーへのメッセージを取得します。

      "global": Globalへのメッセージを取得します。

    • key: string

      メッセージの識別子

    • parameterType: CompatParamType

      メッセージの型

      "signal", "boolean", "float", "double", "integer", "vector2", "vector3" が利用できます。

    Returns undefined | CompatSendable

  • Beta

    アイテムのHumanoidAnimationListに含まれる、humanoidAnimationIdに指定したidのアニメーションを参照するHumanoidAnimationオブジェクトを返します。

    HumanoidAnimationListの詳細はドキュメントを参照してください。

    Parameters

    • humanoidAnimationId: string

    Returns HumanoidAnimation

  • vの内容をtoStringしたものをログに出力します。 ログの末尾には[アイテムの名前]が付与されます。

    Parameters

    • v: any

    Returns void

  • Beta

    アイテムのItemMaterialSetListに含まれる、materialIdに指定したidのマテリアルを参照するMaterialHandleオブジェクトを返します。

    ItemMaterialSetListの詳細はドキュメントを参照してください。

    Example

    // Interactするとマテリアルの色が変わるアイテム
    $.onInteract(() => {
    const mh = $.material("materialId");
    mh.setBaseColor(new Color(Math.random(), Math.random(), Math.random(), 1));
    });

    Parameters

    • materialId: string

    Returns MaterialHandle

  • Beta

    このアイテムが別の物体と衝突したタイミングで呼ばれるcallbackを設定します。アイテムは物理挙動をする必要があります。

    スクリプトのトップレベルでの呼び出しのみサポートされます。 トップレベルで複数回呼ばれた場合、最後の登録のみが有効です。

    Example

    $.onCollide(collision => {
    if (collision.object.playerHandle != null) {
    $.log("collide with a player.");
    }
    });

    Parameters

    Returns void

  • callExternalが完了した場合に呼ばれるcallbackを登録します。 callbackはcallExternalの成功時または失敗時に一回ずつ呼び出されます。

    スクリプトのトップレベルでの呼び出しのみサポートされます。 トップレベルで複数回呼ばれた場合、最後の登録のみが有効です。

    Parameters

    • callback: ((response: null | string, meta: string, errorReason: null | string) => void)

      response: 外部から取得したレスポンス。失敗した場合はnullです。 meta: callExternalの時に渡したものと同じ文字列です。errorReason: responseがnullの場合、失敗の理由。

        • (response: null | string, meta: string, errorReason: null | string): void
        • Parameters

          • response: null | string
          • meta: string
          • errorReason: null | string

          Returns void

    Returns void

  • アイテムを掴む・手放すときに呼ばれるcallbackを登録します。アイテムにはGrabbableItemコンポーネントが付いている必要があります。

    スクリプトのトップレベルでの呼び出しのみサポートされます。 トップレベルで複数回呼ばれた場合、最後の登録のみが有効です。

    Example

    $.onGrab((isGrab, isLeftHand) => {
    if (isGrab) {
    if (isLeftHand) {
    $.log("grabbed by left hand.");
    } else {
    $.log("grabbed by right hand.");
    }
    }
    });

    アイテムを掴んだ・手放したプレイヤーのハンドルを取得できます。

    // 掴んでいる間、移動速度を上げる。
    $.onGrab((isGrab, isLeftHand, player) => {
    if (isGrab) {
    player.setMoveSpeedRate(2);
    } else {
    player.setMoveSpeedRate(1);
    }
    });

    Parameters

    • callback: ((isGrab: boolean, isLeftHand: boolean, player: PlayerHandle) => void)

      isGrab = 掴んだときにtrue、手放したときにfalseになります。

      isLeftHand = 左手で掴んだときや左手で手放したときにtrue、右手で掴んだときや右手で手放したときにfalseになります。

      player = アイテムを掴んだ・手放したプレイヤーのハンドルです。

        • (isGrab: boolean, isLeftHand: boolean, player: PlayerHandle): void
        • Parameters

          Returns void

    Returns void

  • 掴めないアイテムに「使う」動作をした際に呼ばれるcallbackを登録します。アイテムには1つ以上のColliderコンポーネントが付いている必要があります。

    スクリプトのトップレベルでの呼び出しのみサポートされます。 トップレベルで複数回呼ばれた場合、最後の登録のみが有効です。

    Example

    $.onInteract(() => {
    $.log("interacted.");
    });

    アイテムにインタラクトしたプレイヤーのハンドルを取得できます。

    // インタラクトしたプレイヤーをリスポーンさせる。
    $.onInteract(player => {
    player.respawn();
    });

    Parameters

    • callback: ((player: PlayerHandle) => void)

      player = アイテムにインタラクトしたプレイヤーのハンドルです。

    Returns void

  • Beta

    このアイテムの物理状態が更新されるタイミングで呼ばれるcallbackを設定します。 (UnityではFixedUpdateに対応します)

    スクリプトのトップレベルでの呼び出しのみサポートされます。 トップレベルで複数回呼ばれた場合、最後の登録のみが有効です。

    Example

    // 1秒間上昇して2秒かけて落下する。
    // RigidbodyのMassが1であることが想定されています。
    $.onPhysicsUpdate(deltaTime => {
    let t = $.state.time ?? 0;
    t += deltaTime;
    if (t < 1) {
    $.addForce(new Vector3(0, 12, 0));
    } else if (t > 3) {
    t = 0;
    }
    $.state.time = t;
    });

    Parameters

    • callback: ((deltaTime: number) => void)
        • (deltaTime: number): void
        • Parameters

          • deltaTime: number

          Returns void

    Returns void

  • ItemHandle.send、またはPlayerScript.sendToItemId宛てに送られたメッセージを受け取ったときに呼ばれるcallbackを登録します。

    スクリプトのトップレベルでの呼び出しのみサポートされます。 トップレベルで複数回呼ばれた場合、最後の登録のみが有効です。

    ベータの機能

    ベータでは引数 option を指定できます。 ベータでない場合、option引数を設定するとエラーになります。

    optionの指定によって、 PlayerScript.sendTo から送信されたメッセージを受け取ることができます。 PlayerScript.sendTo から送信されたメッセージを受け取る場合は、引数の option を設定してください。

    optionが未設定の場合、あるいはベータではない場合、ItemHandle.sendからのメッセージのみ受け取ります。

    • option.itemtrue の場合、ItemHandle.send から送信されたメッセージを受け取ります。
    • option.itemfalse の場合、ItemHandle.send から送信されたメッセージを無視します。
    • option.item が未設定の場合、ItemHandle.send から送信されたメッセージを受け取ります。
    • option.playertrue の場合、PlayerScript.sendTo から送信されたメッセージを受け取ります。
    • option.playerfalse の場合、PlayerScript.sendTo から送信されたメッセージを無視します。
    • option.player が未設定の場合、PlayerScript.sendTo から送信されたメッセージを無視します。

    option.playerが未設定の場合の扱いはPlayerScript.onReceiveと異なります。 ClusterScript.onReceiveでは既存のスクリプトの互換性を破壊しないためにオプションが未設定の場合はPlayerScriptからのメッセージは受け取りません。

    ベータではない場合、ItemHandle.sendからのメッセージのみ受け取ります。

    Example

    // 送られたメッセージがdamageかhealのときに、ログを出力する。
    $.onReceive((messageType, arg, sender) => {
    switch (messageType) {
    case "damage":
    $.log(`damage: ${arg}`);
    break;
    case "heal":
    $.log(`heal: ${arg}`);
    break;
    }
    });

    Example

    // PlayerScriptからのattackメッセージを受け取りログを出力する。(ベータ)
    $.onReceive((messageType, arg, sender) => {
    if (messageType === "attack") {
    if (sender instanceof ItemId) {
    $.log(`attack: ${arg}`);
    }
    }
    }, { player: true });

    Parameters

    • callback: ((messageType: string, arg: Sendable, sender: ItemHandle | PlayerHandle) => void)

      senderは送信元のアイテムもしくは送信元のPlayerHandleを表します。

    • Optional option: { item: boolean; player: boolean }

      (beta) コールバックの登録のオプションです。受け取るメッセージの種類を指定できます。

      • item: boolean
      • player: boolean

    Returns void

  • 乗ることができるアイテムに乗る・降りるときに呼ばれるcallbackを登録します。アイテムにはRidableItemコンポーネントが付いている必要があります。

    スクリプトのトップレベルでの呼び出しのみサポートされます。 トップレベルで複数回呼ばれた場合、最後の登録のみが有効です。

    Example

    // プレイヤーが乗っている間だけ回転する。
    $.onRide(isGetOn => {
    $.state.isRiding = isGetOn;
    });

    $.onUpdate(deltaTime => {
    if (!$.state.isRiding) return;
    let t = $.state.time ?? 0;
    t += deltaTime;
    $.state.time = t % 360;
    $.setRotation(new Quaternion().setFromEulerAngles(0, t, 0));
    });

    アイテムに乗った・降りたプレイヤーのハンドルを取得できます。

    $.onRide((isGetOn, player) => {
    $.state.isRiding = isGetOn;
    $.state.player = isGetOn ? player : null;
    });

    Parameters

    • callback: ((isGetOn: boolean, player: PlayerHandle) => void)

      isGetOn = 乗るときにtrue、降りるときにfalseになります。

      player = アイテムに乗った・降りたプレイヤーのハンドルです。

    Returns void

  • このアイテムが新たに空間に現れたとき、初めてonUpdateが実行される前に一度だけ呼ばれるcallbackを登録します。

    このアイテムが新たに空間に現れたときとは、以下のいずれかのことを指します。

    • createItem及びcreateItemGimmickでアイテムが生成されたとき
    • Creator Kit製ワールドで、スペースが新規で始まるとき
    • ワールドクラフトで、アイテムを配置もしくはコピーにより新たに生成されたとき

    スクリプトロード時に最後に登録したcallbackのみが有効になります。

    詳細はonStartの呼び出しルールについてを参照してください

    Parameters

    • callback: (() => void)
        • (): void
        • Returns void

    Returns void

  • PlayerHandle.requestTextInputで要求した文字列入力の応答を受け取ったときに呼ばれるcallbackを登録します。

    スクリプトのトップレベルでの呼び出しのみサポートされます。 トップレベルで複数回呼ばれた場合、最後の登録のみが有効です。

    Example

    $.onTextInput((text, meta, status) => {
    switch(status) {
    case TextInputStatus.Success:
    $.log(text);
    break;
    case TextInputStatus.Busy:
    // 5秒後にretryする
    $.state.should_retry = true;
    $.state.retry_timer = 5;
    break;
    case TextInputStatus.Refused:
    // 拒否された場合は諦める
    $.state.should_retry = false;
    break;
    }
    });

    Parameters

    • callback: ((text: string, meta: string, status: TextInputStatus) => void)

      text = プレイヤーが入力した文字列です。文字列のサイズは1000byte以下かつ文字数は250以下(ただしASCIIは1文字当たり0.5文字として換算します)です。

      meta = PlayerHandle.requestTextInputで指定したmeta文字列です。

      status = 文字列入力が成功したかどうかを示すステータスです。

    Returns void

  • updateループ毎に呼ばれるcallbackを登録します。

    スクリプトのトップレベルでの呼び出しのみサポートされます。 トップレベルで複数回呼ばれた場合、最後の登録のみが有効です。

    Example

    // 10秒間隔でログを出力する。
    $.onUpdate(deltaTime => {
    let t = $.state.time ?? 0;
    t += deltaTime;
    if (t > 10) {
    $.log("10 sec elapsed.");
    t -= 10;
    }
    $.state.time = t;
    });

    Parameters

    • callback: ((deltaTime: number) => void)
        • (deltaTime: number): void
        • Parameters

          • deltaTime: number

          Returns void

    Returns void

  • 掴んでいるアイテムに「使う」動作をしたときに呼ばれるcallbackを登録します。アイテムにはGrabbableItemコンポーネントが付いている必要があります。

    スクリプトのトップレベルでの呼び出しのみサポートされます。 トップレベルで複数回呼ばれた場合、最後の登録のみが有効です。

    Example

    $.onUse(isDown => {
    $.log(`isDown: ${isDown}.`);
    });

    アイテムを使ったプレイヤーのハンドルを取得できます。

    // 使ったプレイヤーに上方向の速度を加える。
    $.onUse((isDown, player) => {
    if (isDown) {
    player.addVelocity(new Vector3(0, 5, 0));
    }
    });

    Parameters

    • callback: ((isDown: boolean, player: PlayerHandle) => void)

      isDown = 「使う」動作を開始したときにtrue、終了したときにfalseになります。

      player = アイテムを使ったプレイヤーのハンドルです。

    Returns void

  • Beta

    レイが最初に衝突した物体を取得します。

    Returns

    衝突した物体 (衝突しなかった場合はnull)

    Parameters

    • position: Vector3

      レイの原点 (グローバル座標)

    • direction: Vector3

      レイの方向 (グローバル座標)

    • maxDistance: number

      衝突判定を行う最大距離

    Returns null | RaycastResult

  • Beta

    レイが衝突した全ての物体を取得します。

    Returns

    衝突した物体の配列 (順序は未定義)

    Parameters

    • position: Vector3

      レイの原点 (グローバル座標)

    • direction: Vector3

      レイの方向 (グローバル座標)

    • maxDistance: number

      衝突判定を行う最大距離

    Returns RaycastResult[]

  • Creator Kit 製ワールドで対象にシグナルを通知します。 Creator Kitのワールドに組み込まれたアイテムでしか利用できません。 クラフトアイテムで実行した場合はエラーになります。

    Parameters

    • target: CompatStateTarget

      メッセージを通知する対象

      "this": このアイテムへメッセージを通知します。

      "owner": このアイテムのオーナーへメッセージを通知します。

    • key: string

      メッセージの識別子

    Returns void

  • Beta

    アイテムのPlayerScriptコンポーネントが持つスクリプトをプレイヤーに登録します。 アイテムにPlayerScriptコンポーネントがついていない場合は例外を投げます。

    PlayerScriptコンポーネントの詳細はドキュメントを参照してください。

    このアイテムが削除されると、スクリプトの登録は解除されます。 同一のプレイヤーに対して複数回setPlayerScriptメソッドが呼ばれた場合、先に登録されていたスクリプトは削除され、最後に登録されたスクリプトだけが実行されます。

    登録されたスクリプトからは、PlayerScript.sourceItemIdを使うことで、スクリプトを登録したアイテムの参照を取得することができます。

    Parameters

    Returns void

  • アイテムの移動させたい位置を指定します。値はアイテムのあるグローバル座標系で指定します。

    アイテムにはMovableItemコンポーネントが付いている必要があります。 位置はネットワークを介して補間して同期されるため、即座に反映されない場合があることに留意してください。

    Parameters

    Returns void

  • アイテムの回転させたい姿勢を指定します。値はアイテムのあるグローバル座標系で指定します。

    アイテムにはMovableItemコンポーネントが付いている必要があります。 姿勢はネットワークを介して補間して同期されるため、即座に反映されない場合があることに留意してください。

    Example

    $.setRotation(new Quaternion().setFromEulerAngles(new Vector3(90, 0, 0)));
    

    Parameters

    Returns void

  • Creator Kit 製ワールドで対象にメッセージを通知します。 Creator Kitのワールドに組み込まれたアイテムでしか利用できません。 クラフトアイテムで実行した場合はエラーになります。

    Example

    // 自身のアイテムを対象に foo という識別子で boolean型のメッセージを通知する。
    $.setStateCompat("this", "foo", true);

    Parameters

    • target: CompatStateTarget

      メッセージを通知する対象

      "this": このアイテムへメッセージを通知します。

      "owner": このアイテムのオーナーへメッセージを通知します。

    • key: string

      メッセージの識別子

    • value: CompatSendable

      メッセージの値

    Returns void

  • アイテムの子要素に含まれる、subNodeNameに指定した名前のオブジェクトを参照するSubNodeオブジェクトを返します。 SubNode は子要素から再帰的に探索されます。

    Parameters

    • subNodeName: string

    Returns SubNode

Generated using TypeDoc