Playground リファレンス ガイド 2/2

この記事は Playground: Reference Guide を翻訳したものです。日本人の Unity 初心者向けに表現に手を加えている箇所があります。

4. Playground Conditions(条件判定)

Condition(条件)を使うと、特定の条件を満たした時に「アクション」を実行することができます。アクションについては後述の Playground Actions で説明します。

Condition スクリプトのアイコンには、以下のように左上に紫色の "if" という文字が表示されています。

Condition スクリプトは以下の共通の設定があります。


ゲームプレイ アクション

Gameplay Actions は Condition スクリプトが条件を満たした時に実行されるアクションのリストです。Gameplay Actions はアクションの内どれか一つでも失敗したら停止します(ただ、失敗する可能性のアクションは一部のみです)。アクションが実行されたら、リストの次のアクションが実行されます。

アクション リストが空の時は次のようになっています。

+ ボタンをクリックすると、以下のように追加できるアクションがリストとして表示されます。

アクションを選ぶと、そのアクションを行うためのスクリプトがコンポーネントとして追加され、自動的にリストに追加されます。

Action スクリプトが動作するためには、そのアクションが Condition スクリプトの Gameplay Actions に登録される必要があります。Action スクリプトを GameObject に追加するだけでは、実行されません。

アクションを追加する時のドロップダウンリストの一番下の項目が - empty slot - となっていますが、この項目は「他の GameObject の Action」を指定する時に使います。サンプルシーン Roguelike 内の InviisibleTrigger オブジェクトで「他の GameObject の Action を指定する」ことをやっています。このようなやり方で、Contidition を設定した GameObject から他の(複数の)GameObject に設定された Action を実行できます。


ConditionArea(トリガーを使ってアクションを発動する)

ConditionArea は Is Trigger にチェックを入れた Collider2D (トリガー)を必要とします。Event Type は「いつ」Action が発動するかを指定します。Enter はトリガーにより接触が判定された時、Exit は接触している状態から離れた時に Action が発動します。Stay Inside を指定すると接触している間、何度も Action が発動します。Stay Inside を選ぶと Frequency を設定することができます。これは「何秒ごとに Action を実行するか」を指定します。

Filter by Tag をチェックすると、指定した tag を持つ GameObject がトリガーと接触した時だけ Action を実行します。Player タグを指定して「プレイヤーがトリガーで指定したエリアに入ってきたら Action を実行する」という使い方をすることが多いですが、それ以外の tag を指定することもできます。

Happen Only Once をチェックすると、最初に条件を満たした時に Action が実行されます。2回目以降は何も起こりません。

Gameplay ActionsCustom Action については Condition スクリプト共通の設定です。これらについては ゲームプレイ アクション の説明を参照してください。


ConditionCollision(コライダーを使ってアクションを発動する)

ConditionCollision スクリプトを使うと、他の GameObject がこのスクリプトが追加された GameObject と衝突した時に Action を実行することができます。他の Condition スクリプトと同じように、Filter by Tag をチェックして tag を指定することにより、その tag が指定されたオブジェクトが衝突した時のみ Action を実行させるように設定することができます。

Happen Only Once をチェックすると、最初に条件を満たした時に Action が実行されます。2回目以降は何も起こりません。

Gameplay ActionsCustom Action については Condition スクリプト共通の設定です。これらについては ゲームプレイ アクション の説明を参照してください。


ConditionKeyPress(指定したキーが押されたらアクションを発動する)

ConditionKeyPress を使うと、特定のキーが押された時に Action を実行できます。Key To Press には、どのキーを押した時に Action を実行するかを指定します。

Event Type には、キーが押された時のどのタイミングに Action を実行するかを指定します。Just Pressed を指定すると「キーが押された時」、Released を指定すると「キーが押された後、離された時」に Action が実行されます。Kept Pressed を指定すると、キーが押されている間、Action が繰り返し実行されます。Frequency には「何秒おきに実行するか」を指定します。

Happen Only Once をチェックすると、最初に条件を満たした時に Action が実行されます。2回目以降は何も起こりません。

Gameplay ActionsCustom Action については Condition スクリプト共通の設定です。これらについては ゲームプレイ アクション の説明を参照してください。


ConditionRepeat(一定時間おきにアクションを発動する)

ConditionRepeat を使うと、一定時間おきに Action を実行することができます。

Frequency プロパティには何秒おきにアクションを実行するかを指定します。Initial Delay には最初に実行するまで何秒待つかを設定します。

Gameplay ActionsCustom Action については Condition スクリプト共通の設定です。これらについては ゲームプレイ アクション の説明を参照してください。


5. Playground Actions

アクションは単独では動作せず、Condition によって実行されます。Condition によってその条件を満たした時、Action は実行されます。

アクションスクリプトは以下のように、左上に黄色で "then" と表示されています。

アクションスクリプトには「成功・失敗」の概念があります。一部のアクションは失敗することがありますが、その場合、Condition に設定されたアクションの実行はそこで止まり、以降のアクションは実行されません。


ConsumeResourceAction(持っているアイテムを消費する)

ConsumeResourceAction は、条件を満たした時に実行されます。その条件とは、「Type of Resources に設定された種類のリソースを、Amount Needed に指定された数以上、プレイヤーが持っている」です。

条件を満たしていると、指定された数のリソースが減らされて、次のアクションが実行されます。

条件を満たしていない場合は、何も起きません(リソースは減らされません)。また、Gameplay Actions に登録されたアクションの実行は停止されます。つまり次以降のアクションは実行されません。

ResourceAttribute スクリプトと同様に、Add/Remove types ボタンをクリックすると、リソースタイプの定義を編集することができます。


CreateObjectAction(オブジェクトを生成する)

CreateObjectAction はプレハブから GameObject を生成するアクションです。

Prefab To Create には GameObject を生成する元となるプレハブを指定します。New Position には GameObject を生成する座標を指定します。Relative To This Object にチェックを入れると、New Position は CreateObjectAction が追加されている GameObject からの相対座標として解釈されます。


DestroyAction(オブジェクトを破壊する)

DestroyAction はオブジェクトを破棄する Action です。

Target プロパティには「どのオブジェクトを破棄するか」を指定します。This Object を指定すると、DestroyAction が追加されているオブジェクトが破棄されます。Object That Collided を指定すると、ぶつかってきた相手を破棄します。Target プロパティに Object That Collided を指定するには、DestroyAction が ConditionArea または ConditionCollision に接続されている必要があり、そうなっていない場合は実行に失敗します。

Death Effect プロパティには Target に設定されたオブジェクトが破棄される時に GameObject として生成されるプレハブを指定します。ここにはパーティクルシステムや破片、爆発を表すスプライトなどを指定することが多いでしょう。


DialogueBalloonAction(セリフを表示する)

DialogueBalloonAction はフキダシに指定した文字列(セリフ)を表示する Action です。サンプルの Roguelike シーンで以下のように使われています。

Text To Display には表示する文字列を、Background Color にはフキダシの色を、Text Color は文字の色を指定します。

Target Object に GameObject を指定すると、そのやや上にセリフが表示されます。何も指定しない場合は画面の中央に表示されます。

Disappear Mode に Time を指定すると、Time To Disappear に指定した秒数でセリフは消えます。Button Press を指定すると、Key To Press に指定したキーを押すまでセリフは表示され、キーが押されるとセリフは消えます。

長いセリフを表示したい時は、別のオブジェクトに DialogueBalloonAction を追加して Following Text に設定します。そうすると、このセリフが消えた後に次のセリフとして Following Text に設定されたセリフが表示されます。

連続したセリフを Target を指定せず、キーを押すと消えるように作ると、チュートリアルのようなものを作れます。

連続したセリフを異なるキャラクターを Target に指定して、会話シーンを作ることができます。


LoadLevelAction(シーンを切り替える)

LoadLevelAction はシーンを切り替える Action です。

Scene to load には読み込むシーンを指定します。ここで選択するためには、対象のシーンを Build Settings の Scenes In Build に追加する必要があります。Build Settings を開くには、File メニューから Build Settings... を選ぶか、Crtl + Shift + B を押します。

Scenes to load の最初の項目である RELOAD LEVEL を選ぶと、現在のシーンを再度読み込みます。ゲームオーバー後に状態をリセットする時などに使えます。


OnOffAction(オブジェクトの有効・無効を切り替える)

OnOffAction は GameObject の有効/無効を切り替える Action です。Object To Affect に指定した GameObject の有効/無効を切り替えます。

Just Make Invisible にチェックを入れると、GameObject の Sprite Renderer コンポーネントのみを無効にして見えなくします。当たり判定などが設定されている場合、それらは無効になりません。

OnOffAction は有効/無効を切り替えます。つまり、有効な時に Action が実行されると無効になり、無効な時に実行されると有効になります。


TeleportAction(オブジェクトを瞬間移動する)

TeleportAction は GameObject を別の場所に瞬間移動させます。Object To Move に指定したオブジェクトを瞬間移動させますが、何も指定されていない場合は TeleportAction スクリプトを追加した GameObjet が瞬間移動します。

New Position には移動先の座標を指定します。Stop Movement は移動させる GameObject に Rigidbody2D が追加されている時のための設定です。このプロパティにチェックを入れると、瞬間移動する時に動きを止めます。チェックされていない場合は、移動する前の速度や回転を維持したまま移動します。


コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です