PhysicalButton (フィジカル ボタン)
動く押しボタンが作れるコンポーネント
項目
- Enabled:
- このコンポーネントを有効にするかどうか。
- PressAxis:
- 押す方向。初期設定はz1(前方向)。
z-1に設定すると逆方向に動く。各軸を組み合わせると、斜めに動かしたりもできる。
- AcceptPhysicalTouch:
- 手指で操作できる。
アバターの人差し指第一関節に押す側のコンポーネントが付いてる。(アバターセットアップ時、手指判定の初期位置は基本的にズレてます。正しい位置に合わせるには、人差し指をの設定を調整する必要があります。)
- AcceptRemoteTouch:
- レーザーで操作できる。
- AcceptOutOfSightTouch:
- 画面(視界)外でも操作できる。
Falseだと、顔をボタンに向けている時だけ押せる。
Trueだと、ボタンが視界の外でも押せる。
- EditModeOnly:
- 編集モードの時だけ操作できる。
- ActiveUserFilter:
- ユーザーの中にあるとき、操作できるかできないかを指定する。
0 Disabled 無効 1 OnlyActiveUser ユーザーの中にあるとき、そのユーザーだけ操作できる。ユーザーの中にないとき、誰も操作できない。 2 ActiveUserWhenPresent ユーザーの中にあるとき、そのユーザーだけ操作できる。ユーザーの中にないとき、誰でも操作できる。 3 ExcludeActiveUser ユーザーの中にあるとき、そのユーザーだけ操作できない。ユーザーの中にないとき、誰でも操作できる。
- __legacyActiveUserRootOnly:
- ???
- Pressed:
- 押した時に、別のボタンを働かせる。
通常は使用しないです。
使う場合はボタンのSyncDelegateを探しましょう。
UIXやFluxノード等を分解すると見つけられます。
- Pressing:
- 押してる間、別のボタンを働かせる。
- Released:
- 押し終わった時に、別のボタンを働かせる。
- PressDepth:
- 押したときに凹む深さ。
- PressThreshold:
- 押した時に反応するしきい値。
- ReleaseThreshold:
- 離した時に反応するしきい値。
- IsPressed:
- 状態。押されてる。
- IsHovering:
- 状態。レーザーが当たってる。
- IsHolding:
- 状態。保持してる。
- IsPressedOrHolding:
- 状態。押されてる、あるいは保持してる。
- Hold:
- 保持する。(一回押すと保持する。もう一回押すと解除される。)
TouchToggleみたいな使い方ができる。
- HoldDeothRatio:
- 保持してる時の凹む深さの割合。
- BeginPressVibration:
- 押し始めた時のコントローラー振動設定。
振動設定は4種類ある。実際にコントローラの振動を確認しながら設定すると良い。
0 None 無 1 Short 弱 2 Medium 中 3 Long 強
- PressVibration:
- 押した時のコントローラー振動設定。
- HoverVibration:
- レーザーを当てた時のコントローラー振動設定。
- Label:
- ???
- _currentPressingDepth:
- 状態。現在の押されている深さの割合。(0~1)
レーザーでトリガーした場合は、押したか押してないかの2状態ですが、手指で押す場合は中間の値も取れます。
- _buttonOffset:
- ボタンの位置調整。(初期設定は自スロットのPosition)
- _buttonPosition:
- ボタン位置の駆動先。(初期設定は自スロットのPosition)
アタッチすると自動で設定される。
駆動先は手動で変更可能。
使用例
- 押しボタンにしたいスロットにアタッチ。(Colliderも必要。)
その他
- とりあえずボタンを作るのであれば、TouchButtonを使用しましょう。
PhysicalButtonは物理的に動かせるボタンが作れる、多機能で複雑なコンポーネントです。 - 手指で押すときはコライダー外周ではなく、スロットの原点位置で反応する。(レーザーのときはコライダー外周で反応する。)
- Grabbableと同じところにアタッチすると掴めなくなるので、子スロットを作るなどして工夫が必要。
- 同一のスロットに、同じ又は違うボタン類コンポーネントをアタッチすると、片方しか動作しません。TouchEventRelayを使用することで、複数のボタン等を組み合わせて使用できます。
- ボタン専用のFluxノードが有ります。
- 公式Wiki ボタンイベント
- Button Interactionsと組み合わせると便利。