メインコンテンツまでスキップ

スクリプトを置く場所

スクリプトは、オブジェクト、シーン、スペース、プロジェクト全体のどこにでも付けられます。どの階層を選ぶかで、スクリプトが動く期間が決まります。これは、コードの中身より大事になることもよくあります。

付ける場所動いている間止まるとき
オブジェクトオブジェクトが画面上にある間非表示、無効、削除されたとき
シーンシーンが有効な間見る人がシーンを離れたとき
スペース見る人がスペースにいる間別のスペースに移ったとき
プロジェクト常に。どのスペースでも見る人が去ったとき

オブジェクトに付ける​

これが基本の付け方です。開くドア、追いかけてくる敵、反応するボタンなど、1 つのものに属する振る舞いに使います。

ctx.entity がそのオブジェクトです。オブジェクトが止まるとスクリプトもすぐに止まるので、もう存在しないオブジェクトの後片付けをする必要はありません。

シーンに付ける​

シーンの Scripts セクションで追加します。シーン全体に関わるロジックに使います。イントロを順番に再生する、集めるアイテムが残りいくつかを数える、見る人が先に進めるタイミングを決める、といった処理です。

シーンが有効になると開始し、有効でなくなると止まります。AR のプロジェクトでは、シーンが検出されたときに開始するということです。

スペースに付ける​

スペースの Scripts セクションで追加します。スペースのスクリプトは、シーンが切り替わっても動き続けます。3 つのシーンにまたがるスコア、訪問全体のタイマー、次のシーンを選ぶロジックなどに使います。

オブジェクトへのタップなどのイベントも、スペースのスクリプトに届きます。イベントは、オブジェクトからシーン、シーンからスペースへと伝わっていきます。

プロジェクトに付ける​

プロジェクトの設定で追加します。スクリプトはすべてのスペースに追加されるので、見る人がどこへ行っても存在します。

見る人の選択、全体の進み具合、アナリティクスなど、スペースをまたいで保つ必要があるものに使います。

値が残るもの​

保存先シーンの切り替え後スペースの切り替え後再読み込み後
init の中の変数スクリプトが動き続けている場合だけスクリプトが動き続けている場合だけ残らない
ctx.store残る残らない残らない
グローバル残る残る残らない
@space: のグローバル残る残らない。スペースごとに別の値を持つよう意図的にしています残らない
タブを閉じると、すべて消えます

store もグローバルも、何も残りません。次回も使いたい値があるなら、見る人がまだページにいる間に、自分で用意した保存先へ送ってください。

階層を選ぶ​

このロジックが関わる、いちばん小さな単位は何かを考えてください。

  • 1 つのオブジェクトなら、スクリプトをオブジェクトに付けます。
  • このシーンなら、シーンに付けます。
  • 訪問全体なら、スペースに付けます。スペースが複数あるなら、プロジェクトに付けます。

「念のため」に何でもプロジェクトに付けるのはやめましょう。プロジェクトのスクリプトは、特定のシーンが読み込まれていることを前提にできません。オブジェクトに付けたスクリプトなら不要なチェックで、コードがいっぱいになってしまいます。

パッチも同じです​

パッチも、これらのどの階層にでも付けられ、同じ期間だけ動きます。コードを書かずにプロジェクト全体のロジックをつくるなら、プロジェクトにパッチを付けるのが一般的な方法です。


次へ: ctx API — スクリプトが ctx でできることの一覧。