コンテキストオブジェクト - Amazon Sumerian

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

コンテキストオブジェクト

注記

新しいSumerianが利用可能になりました。新しいスクリプト形式では、より高度な抽象化が提供され、ビジュアル[State Machine]ビヘイビアーと、独自のカスタムアクションです。これらのアクションは動的に設定でき、スクリプトによって強力な方法で調整できます。また、ビジュアルな[State Machine]非表示にします。

コンテキストオブジェクト、ctxを使用して、スクリプトの存続期間中にスクリプトデータを保存できます。コンテキストはsetup()でクリアされたcleanup()に記述され、すべてのスクリプト関数に渡されます。以下のプロパティがあります。

Properties

  • entity(Entity) — スクリプトがアタッチされているエンティティです。

  • entityData(Object) — エンティティ上のすべてのスクリプト間で共有されているデータオブジェクトです。

  • activeCameraEntity(Entity) — 現在アクティブなカメラエンティティです。

  • domElement(HTMLCanvasElement) — WebGL キャンバス要素です。

  • playTime(number) — シーン開始時からの経過時間です。

  • transitions(Object) — 移行関数で成功または失敗を通知するために使用される移行関数です。スクリプトの実行アクションをステートマシン

  • viewportHeight(number) — キャンバスの高さです。

  • viewportWidth(number) — キャンバスの幅です。

  • world(World) — ワールドオブジェクトです。

  • worldData(Object) — ワールド内のすべてのスクリプト間で共有されているデータオブジェクトです。

上のいくつかのプロパティはctxはスクリプト間で共有されています。entityDataはエンティティ上のすべてのスクリプトに共有され、worldDataはすべてのスクリプトで共有されています。これらはすべて最初は空で、あらゆる種類のデータを保存するために使用できます。

たとえば、acceleration という名前のプロパティを定義する場合、3 つのレベルで使用可能にできます。

// Only accessible to the script that defined the property ctx.acceleration=9.82; // Accessible to all scripts on the entity ctx.entityData.acceleration=9.82; // Accessible to all scripts ctx.worldData.acceleration=9.82;

組み込みコンテキストプロパティには、いくつかの便利な関数も含まれています。たとえば、worldオブジェクトでは、タグにもとづいてエンティティを検索できます。ctx.world.by.tag で、特定のタグを持つすべてのエンティティを取得できます。

var entities = ctx.world.by.tag('myTag');