はじめに
Vket Cloudでは、「HeliScript」という独自のスクリプトを使用してコーディングを行うことで、ワールド内に高度なギミックを導入することが出来ます。
本記事では、HeliScriptでシーン上のアイテムの情報を取得する方法を紹介します。
動画
「アイテム」って?
Vket Cloudにおける「アイテム」とは、ワールドを構成するオブジェクト要素のことです。
VketCloudSDKのビルドと実行機能を使用した後、releaseフォルダのdata/Sceneフォルダ内にある、ワールド情報が記載されたjsonファイルにて、itemsという項目にある各要素がこれに該当します。
ワールド情報が記載されたjsonファイルの確認方法
ビルド後、VketCloudSDKタブのツール > Releaseフォルダを開くを選択することでreleaseフォルダを開けます。
releaseフォルダ内のdata/Sceneフォルダ内にあるjsonファイルがワールド情報が記載されたjsonファイルになります。
この中の「items」項目の中に含まれている各要素が、シーン上の「アイテム」となります。
基本的にはUnity上で設定した名称と同じものに無ります。
アイテムの生成方法
アイテムは、Unity上でVKC Item ○○という名前のUnityコンポーネントを使用した際に生成されます。(例:VKC Item Field)
※各Unityコンポーネントの使用方法につきましては、ヘルプページを参照してください。
アイテムを取得する
HeliScript上でアイテムを取得するためには、Itemクラス変数宣言と、hsItemGet(string itemName)
関数またはhsItemGetSelf()
関数を利用します。
hsItemGet()
hsItemGet(string itemName)
関数は、引数で指定した名称のアイテムを取得する関数です。
// シーン上にWorldという名前のアイテムがある場合
Item m_world; // アイテムクラス変数「m_world」を定義
m_world = hsItemGet("World");
上記の例では、アイテムクラス変数「m_world」にアイテム「World」の情報を取得して格納しています。
hsItemGetSelf()
hsItemGetSelf()
関数は、この関数を発火したコンポーネントが所属するアイテム自体を取得する関数です。
例えば、VKC Item Fieldコンポーネントが付いているオブジェクト「Field_A」に対しVKC Attribute Scriptをアタッチし、その中で使用しているHeliScriptでhsItemGetSelf()
関数を使用した場合、Field_Aの情報を取得することが出来ます。
取得したアイテムの名前を取得
Itemクラスでは、表示/非表示や移動など、アイテムに対し様々な機能を使用することが出来ます。
ここでは、hsItemGetSelf()
にて取得したアイテムの名称を取得する方法を紹介します。
Item m_Item; // Itemクラス変数「m_Item」を宣言
m_Item = hsItemGetSelf(); // コンポーネントが所属するアイテム自体を取得
hsSystemWriteLine("このスクリプトを持つアイテムの名前は%sです" % m_Item.GetName());
Itemクラスが持つ関数の一つにGetName()
があります。
これは、アイテムの名前をstring型で出力する関数です。
上記の例を「ItemExp」という名前のアイテムが実行した場合、「このスクリプトを持つアイテムの名前はItemExpです」といった出力がされます。
次 : ⑨ HeliScriptのUpdate()関数について
前 : ⑦ HeliScriptで制御構文を使う(for、while)