これらのコンポーネントは、情報を保持するために実行時に自動的に保存および復元される、簡単に参照できるデータを作成します。これらは、Float、Bool、String、および Vector3 変数と、Float から継承された Health コンポーネントで構成されます。これらは、ゲームの状態を記憶するのに非常に便利です。一般的な使用例は、World Bool を使用してロック解除されたドアを記憶することです。
各変数は、対応するスクリプト可能オブジェクトにリンクすることもできます。たとえば、Health コンポーネントに関連付けられた WorldFloatSO は、キャラクターのヘルスを表示するための UI 要素の参照として使用したり、敵の AI がその動作を変更したりして、システムの分離に役立ちます。
Float And Health
Float コンポーネントと Health コンポーネントは同様の機能を持ちますが、Health には追加のプロパティがいくつかあります。
高度な使用のために、両方のコンポーネントで一時値を使用して、現在の値を簡単に保存または削除できます。たとえば、コインの収集に Float 変数を使用している場合、プレイヤーが死亡するかゲームがリセットされると、tempValue が自動的にクリアされ、保存されていないコインが削除されます。
一時値を操作するには、適切なメソッドを呼び出し、[Save Manually Only] オプションを使用して一時値を完全に制御する必要があります。
Tip
Float は、値を 1 または 0 (True または False) に設定することでブール値として扱うことができます。
Property | |
---|---|
Name ID | 変数の名前。保存システムを使用する場合、この名前は一意である必要があります。必要に応じて、生成ボタンをクリックして一意の名前 ID を作成します。 |
Value | 現在の値。これが保存される値です。 |
Clamp | 現在の値をクランプします。 |
Broadcast Value | 有効にすると、現在の値が変更された場合、同じ名前 ID を持つすべての変数の現在の値も設定されます。 |
Save | 有効にすると、システムは現在の値を保存して復元します。開発中は、削除アイコンを押して保存したデータを消去します。 「Save Manually Only」 が有効になっている場合は、データを保存するには Save() メソッドを呼び出す必要があります。シーンの終了時にシステムが自動的に保存することはありません。 |
Is Scriptable Object | 有効にすると、AssetsFolder/Variables フォルダに配置されるスクリプト可能オブジェクト (WorldFloatSO) が作成されます。スクリプト可能オブジェクトが不要になった場合は、手動で削除します。 |
Extra Health Properties | |
---|---|
World Effect | ImpactPacket を使用する場合に呼び出されるエフェクトの名前。 |
Recovery Time | ダメージを受けた後、キャラクターがダメージを受けなくなる時間。 |
Hash Shield | 有効にすると、キャラクターはシールドの方向(1 または -1)に応じてのみダメージを受けることができます。たとえば、シールドの方向が 1 の場合、キャラクターは背後からのみダメージを受けることができます。 |
Events | |
---|---|
On Min Value | 現在の値が最小値に達したときに呼び出される Unity イベント。 |
On Max Value | 現在の値が最大値に達したときに呼び出される Unity イベント。 |
On Value Changed | 現在の値が変更されたときに呼び出される Unity イベント。これは、Health を使用している場合は、値の変更とダメージの方向とともに呼び出されます。 |
On Load Condition True | 開始時に値がゼロより大きい (True) 場合に呼び出される Unity イベント。 |
On Load Condition False | 開始時に値がゼロ (False) の場合に呼び出される Unity イベント。 |
On Shield Hit | シールド メカニクスが敵の攻撃をブロックしたときに呼び出される Unity イベント。 |
Method | |
---|---|
GetValue() | 現在の値を返します。 |
Save() | 現在の値を保存します。 |
DeleteSavedData() | 現在保存されているデータを削除します。 |
SetValueAndSave(float value) | 現在の値を設定し、保存します。 |
Increment(float value) | 現在の値を増やします。 |
IncreaseTempValue(float value) | 一時値を増やします。これにより、OnMinValue、OnMaxValue、および OnValueChanged イベントがバイパスされます。 |
SetValue(float value) | 現在の値を設定します。 |
CanIncrement(bool value) | false の場合、現在の値を増分することはできません。 |
SetTrue() | 現在の値に 1f の値を指定します。 |
SetFalse() | 現在の値に 0f の値を指定します。 |
CanTakeDamage(bool value) | これが Health の場合、False であれば、このゲームオブジェクト上のレイヤーは無視レイキャスト レイヤーに切り替わります。True の場合は元に戻ります。 |
SaveTempValue() | 一時的な値を使用している場合は、現在の値が保存されます。 |
ClearTempValue() | これにより、一時的な値がクリアされます。これは、ゲームがリセットされるたびに呼び出されます。 |
String, Bool, And Vector3
これらは Float と同様に動作します。それぞれのスクリプト可能オブジェクトは WorldStringSO、WorldBoolSO、および WorldVector3SO です。
Events | |
---|---|
AfterLoad | 値が初期化された後に呼び出されるイベント。 |
On Load Condition True | Bool の場合、開始時に値が True の場合に呼び出される Unity イベント。 |
On Load Condition False | Bool の場合、開始時に値が False の場合に呼び出される Unity イベント。 |
Method | |
---|---|
GetValue() | 現在の値を返します。 |
Save() | 現在の値を保存する。 |
DeleteSavedData() | 現在保存されているデータを削除します。 |
SetValueAndSave(type value) | 現在の値を設定し、保存します。 |
SetValue(type value) | 現在の値を設定します。 |
Method | For Bool |
---|---|
SetTrue() | 値をtrueに設定します。 |
SetFalse() | 値をfalseに設定します。 |
IsTrue() | 値が true の場合、 true を返します。 |
IsFalse() | 値が false の場合は true を返します。 |
World Float HUD
WorldFloatHUD は、UI 要素を使用してワールドフロート値を表示するための便利なクラスです。このクラスは、Projectile や Firearms などの他のクラスと連携して、弾薬の値を表示することもできます。UI 要素のスタイルは個人の好みに任されています。このクラスは、画像を有効にして値を設定するだけです。
Property | |
---|---|
Type | 離散的な項目は、空の値と完全な値に指定されたスプライトを使用して、ヘルスハートなどの UI 画像として表示されます。値の表示に使用する UI 画像の数も設定する必要があります。連続した項目の場合、値は UI 画像の fillAmount プロパティを変更することによって表示されます。数値の場合、値の表示には TextMesh が使用されます。 |
Value Type | 値を表示するには、これらのいずれか 1 つの参照のみを設定します。Projectile、Firearms、およびToolの場合、値は弾薬の量を表します。プレイヤーの現在の銃器の弾薬の量を表示するには、プレイヤーゲームオブジェクトをこのフィールドにドラッグします。ツールの弾薬の量を表示するには、任意の銃器をこのフィールドにドロップします。 |
Can Increase | この機能により、ゲームの進行に合わせて Discrete Items のアイテム数を増やすことができます (プレイヤーのハートの数を増やすなど)。適切に使用するには、最大数の Discrete Items を作成し、その参照を設定する必要があります。実行時に、IncreaseDiscreteValue メソッドを呼び出してアイテム数を増やします。 Saved Manually が有効になっている場合は、このメソッドが呼び出されるたびに、現在使用可能なアイテムが保存されます。それ以外の場合は、SaveDiscrete メソッドを呼び出して、保存するタイミングを制御します。 |
Method | For Bool |
---|---|
IncreaseWorldFloat() | HUD タイプが個別のアイテム用である場合は、このメソッドを呼び出して、使用されている World Float または Health 変数を増やします。これにより、使用可能な視覚的な個別のアイテムを超えて増加することがなくなります。 |