web-dev-qa-db-ja.com

Unity Input.getAxisで使用できるパラメーターは何ですか?

Unity .getAxis(string name) は、ユーザー入力(矢印、マウス、さらにはジョイスティック)によって生成された思考オフセットを返すようです。戻り値は、マウスホイールを除いて<-1; 1>の間隔であると便利です。

さまざまなコードサンプルから、入力を取得する多くの方法を見ることができますが、実際の名前/入力リストはないようです。私の場合、ホイールまたはを使用してズームを有効にしたい PgUp そして PgDn。ホイールコードは次のようになります。

movement.y -= ResourceManager.ScrollSpeed * Input.GetAxis("Mouse ScrollWheel");

しかし、ページダウンとページアップはどうですか?そして、一般的に、このメソッドで使用する名前をどのように知ることができますか?

8
Tomáš Zato

Input.GetAxis および Input.GetButton (および GetButtonDown および GetButtonUp )は、次のいずれかの状態を返します。 入力マネージャー で定義された仮想入力軸。

戻り値は[-1, 1]の範囲である必要はありません。絶対値を表すほとんどの仮想軸は、-1から1までの値で表されます。ただし、事前定義された「MouseWheel」、「Mouse X」、「Mouse Y」のように、相対移動を返す軸があります。最後のフレーム以降に軸が移動した量を返します。

MouseWheelには、いくつかの追加の「問題」があります。デルタ値はOSから取得されます。ユーザーが「スクロール単位」ごとに3行進むようにスクロールホイールを設定した場合、3の倍数の値が得られます。ホイールを十分に速く回転させると、3より大きい値または-3より小さい値が得られる可能性があります。

PageUpまたはPageDownのデフォルトの軸はありませんが、必要に応じて追加できます。ただし、GetAxisは仮想軸の状態を返すことに注意してください。したがって、ポジティブボタンを押し続けると、ボタンを押している限り「1」が表示されます。イベントをリッスンする場合は、GetButtonDown/GetButtonUpを使用する必要があります。

ただし、特定のキーを確認する場合は、通常、 GetKeyDown / GetKeyUp を使用する方が簡単です。これには KeyCode が必要です。

何かのようなもの:

if(Input.GetKeyDown(KeyCode.PageUp))
    movement.y -= 1;
if(Input.GetKeyDown(KeyCode.PageDown))
    movement.y += 1;

編集
一般的に利用可能なキー名を知りたい場合は、 従来のゲーム入力 ページをご覧ください。下部には、「PageUp」や「PageDown」などの最も一般的なキー名のリストがあります。入力マネージャーは通常、間違ったキー名を拒否します。したがって、1つ入力し、入力フィールドにフォーカスを外しても値が残っている場合は、正しいです。

ボタンを押すたびに正のボタンを設定すると、仮想軸は「感度」設定に応じて0から1に「ゆっくり」増加します。感度は加速係数のようなものです。ボタンを離すと、減速係数である「重力」の値に応じて、「ゆっくり」0に戻ります。

正ボタンと負ボタンを設定すると、正ボタンを押すと軸が最大1になり、負ボタンを押すと軸が-1になります。 「スナップ」がtrueの場合、ゆっくりと0に戻ってから反対方向に成長し始めるのではなく、反対のボタンを押すとすぐに0に戻ります。

「デッド」値はデッドゾーンを定義します。軸の値がデッドよりも小さい(または-デッドよりも大きい)場合、0として扱われます。これは、通常、静止位置の周囲にジッターがある実際のアナログ入力デバイスにとって重要です。

「invert」、「Type」などの残りのプロパティは、ドキュメントを読むときに明確にする必要があります。

デフォルトの「水平」軸と「垂直」軸のように、同じ名前で2つの軸を定義することができます。同じ名前の軸は1つとして扱われます。

私はそれがインプットマネージャーのもののほとんどをカバーするべきだと思います。

9
Bunny83