ContentHandler

コーヒー豆をはじめとした中身の保持・受け渡しを行う「容器」の機能を持つコンポーネントです。
複数のContentHandler同士で連携して使います。

flowchart LR
    accTitle: class relationship
    accDescr: ContentHandler inherits INoneSyncPickupEntity, and is inherited by IHeatableContentHandler.

    handler("<u>**ContentHandler**</u>")
    entity("INoneSyncPickupEntity")
    proxy(["NoneSyncPickupProxy"])
    heatable("IHeatableContentHandler")
    sound(["ContentSoundHandler"])

    entity -->|継承| handler
    entity -.->|依存| proxy
    handler -->|継承| heatable
    handler -.->|依存| sound

関連コンポーネント


機能について

  • 本コンポーネントと同時に以下のコンポーネントが必要です。
    • Collider系コンポーネント
    • RigidBody (Use Gravityオフ、Is Kinematicオン)
  • NoneSyncPickupProxyを介してUseされると、中身をパーティクルとして出すことができます。
    • 再度UseすることでパーティクルのON/OFFを切り替えます。
    • 中身が入っていない場合、パーティクルは出せません。
  • ほかのContentHandlerにパーティクルを当てることで、保持している中身を渡すことができます。
  • ほかのContentHandlerからパーティクルを当てられると、その中身を受け取ります。
    • 受け取れる中身の種類や挙動は、後述の設定によって決まります。
    • 中身を受け取るときに、その種類に応じた効果音がContentSoundHandlerによって再生されます。

設定項目

Components 説明
Animator 状態に応じた見た目の制御を行うためのAnimatorを設定します。
Particle 内容物の受け渡し判定に使うためのParticleSystemを設定します。
Sound Handler 中身に応じた効果音を再生するためのUdonコンポーネントを設定します。
詳細はContentSoundHandlerをご覧ください。
Settings 説明
Def Content 最初に入っている中身の種類を設定します。
Def Volume 最初に入っている中身の量を設定します。値の範囲はbyte型 (0~255の整数) です。
Max Volume 中身の最大容量を設定します。値の範囲はbyte型 (0~255の整数) です。
Feed Volume 他の容器へ中身を渡すとき、一度に渡す量を設定します。値の範囲はbyte型 (0~255の整数) です。
Allow Content 他の容器から中身を渡されるとき、受け入れる中身の種類を設定します。
Options 説明
Is Infinity 他の容器へ中身を渡すときに、自身の中身を減らさず無限に供給できるようにします。
Is Stop When Feed 他の容器へ中身を渡したときに、パーティクルを止めるようにします。
Accept Mode 他の容器から中身を渡されるときの、中身の受け入れ方法を設定します。
YES 中身を受け取ります。保持している中身と異なる場合は受け取りません。
NO 中身を受け取りません。
OVERRIDE 中身を受け取ります。保持している中身と異なる場合は上書きします。
ERASE 中身を受け取りますが、保持せずに消去します。
Coll Interval 他の容器から中身を渡されるときの、判定のインターバル時間 (単位:秒) を設定します。

仕様詳細

  • 内容物の受け渡しはOnParticleCollisionイベントによって発生します。
  • Def ContentDef Volumeについては、ワールドへ最初に入った人物 (Join時にオブジェクトのOwner権限を握っている人物) のみが設定を反映します。
    • Late-Joiner視点では、各オブジェクトのOwnerが把握している状態が同期されます。
  • 空き容量よりも相手のFeed Volumeが大きい場合、溢れた分の中身は消滅します。
    • Accept ModeERASEの場合は、空き容量に関わらず中身を消去できます。
  • Accept Modeに設定された受け入れ方法に関わらず、Allow Contentに設定されていない中身は受け入れません。
    • 例えばAllow ContentRAW_BEANS,ROASTED_BEANSに、Accept ModeERASEにそれぞれ設定されている場合は、「RAW_BEANSROASTED_BEANSだけを消し去る容器」として機能します。

Copyright © 2025 カルトン, yabumi823