
UI
Tutorial
Beginner
+0XP
20 mins
(44)
Unity Technologies

ゲームをクリアするために必要な要素は何か、スイッチは何をするのか、なぜそれが重要なのかをユーザーに伝える方法を紹介します。
1. InfoZone プレハブ
これを行う一般的な方法は、主人公からプレイヤーへの対話です。3D ゲームキット ライト では InfoZone プレハブ を使用してこれを実現しています。
- プロジェクトビューで、3DGamekitLite > Prefabs > Interactables と進み、InfoZone プレハブを選択します。
InfoZone をヒエラルキーウィンドウの ---- UI ---- セクション ヘッダーの下にドラッグします。セクション ヘッダーの下に追加し、その子ゲームオブジェクトとしてではなく、セクションヘッダーの下に追加することを忘れないでください。
- InfoZone ゲームオブジェクトには、Sphere Collider コンポーネントがあり、Scene に大きな緑色の球体として表示されます。これを Switch の上に移動し、3 つすべてを含むようにサイズを変更します。これは、ダイアログ表示のトリガーであり、エレンが立つ必要がある領域を定義するものですので、大きすぎないようにしてください。
- Unityが自動的に設定していない場合は、インスペクターウィンドウで Layer をEnvironment に設定してください。
- Sphere Collider の Is Trigger をチェックします。
ここで、InfoZone を DialogueCanvas プレハブにリンクさせ、ゲームコマンドを使って、プレイヤーがトリガーゾーンに入ったときに Switch に関する情報を提供します。
- 3DGamekitLite > Prefabs > UIPrefabs と進み、DialogueCanvas プレハブ を探します。
- DialogueCanvas をヒエラルキーウィンドウにドラッグして ---- UI ---- セクションのヘッダーの下に配置します。
- インスペクターの上部にある名前の横のチェックボックスを解除して無効化します。
- 後ほど、エレンが InfoZone のトリガーゾーンに入ったときにのみ有効になるように設定します。
シーン の InfoZone を選択し、インスペクタ-ウィンドウで Interact On Trigger コンポーネントを探してください。
- Unity が自動的に設定していない場合は、レイヤーを Player に設定します。
- ダイアログキャンバスコントローラーのスクリプトに On Enter () と On Exit () を設定します。そのためには、スクリプトをそれぞれの空のスロットにドラッグしてください。
On Enter() で、No Function のドロップダウンを選択し、DialogueCanvasController.ActivateCanvasWithText に変更します。
テキストフィールドを更新して、プレイヤーに有用なテキストを提供します。この例では以下のようにしています。“If I switch all of these on maybe the door will open."(これらをすべてオンにすればドアが開くかもしれない)
- On Exit () で、ドロップダウンメニューの No Function を選択し、DialogueCanvasController.DeactivateCanvasWithDelay に変更し、値フィールドを 1 に設定します。
設定が正常に動作するかどうかを確認するには、Play ボタンを押して Switch に向かって歩きます。スイッチに近づくと、ヒントが書かれたダイアログボックスが表示されます。
これですべての設定が完了したので、Switch と Crystal を他のエリアに移動させたり、プレイヤーから隠したりして、難易度を上げることができます。ゲームオブジェクトを移動させても、ゲームコマンドリンクはそのまま添付されているので、ゲームオブジェクトをよりダイナミックに使うことができます。また、プロジェクトの主要なゲームプレイメカニクスをプレイヤーに通知する必要がある場合は、DialogueCanvas を追加することができます。