Unity Plus

43,995円 /月



Unity Pro


198,000円 /月

Unity認定資格

Unity学習
基本英語です

50%OFFセール中だ!!

セール終了まで

{{timeleftshow}}


今日だけのセール:70%OFF
{{todaysaleleft}}

UnityのNewInputSystemではまったことや気づいたこと

NewInputSystems-Ver1.0.0


Androidの時にEditor上でマウスの入力を拾えない

「InputDebugger」ウィンドウを開いて[Option]タブから[Add Devices Not Listet -----]ボタンを押すと、[Support Device]の欄にマウスとキーボードが移動して取得できるようになるはず。

このデバイス名を右クリックでリムーブとかできるけど、消しちゃうとまた入れるにはUnity再起動までする必要がある? ほかにもちゃんとした方法があるはずだけど見つからなかったです。

Androidの時にエディタ上でマウスをタッチ代わりにする

上に同じく[Debugger Window]を開いて[Option]から[Simulate Touch Input~~~~]を押す。

Control Type

[ControlType]はこのウィンドウ上で設定しやすくするためだけの項目だと思います。

矛盾していてもreadValueで読み取るときには関係ない。

ReadValueで取得する型

[Control Type]で取得できる型名から。

  • Analog=>float
  • Axis=>float
  • Bone=>
  • Button=>float
  • degital=>int
  • DiscreateButton
  • double=>double
  • Dpad
  • Eyes
  • Integer=>int
  • Key
  • Quaternion=>Quaternionかな?
  • Stick=>Vector2
  • Touch=>UnityEngine.InputSystem.LowLevel.TouchState
  • Vector2=>Vector2
  • Vector3=>Vector3

他に見ていて分からなかったもの

  • TouchPhase=>UnityEngine.InputSystem.TouchPhase

Boneとかどんなデバイスに使えるのかすら分からなかったです。

型名を知りたいときは

ReadValueAsObject().GetType().ToString()

とかすれば見れないこともないですが。

公式ドキュメントのどこかに情報が載っているとは思うんですけど見つけられませんでした。

Bindingされる値

Delta(Vector2)

前フレームからの移動差。

position(Vector2)

現在の位置。

Press(float)

押されているか。boolではなくfloatなので比較して判定をしないといけない。

Pressure(float)

押されてるときの圧、タッチでも微妙に反応する。ペンタブとか用? Mouseでも設定できるけどずっと0だった。

Radius(Vector2)

同じ入力とみなす半径の範囲。タッチであればradiusに設定した範囲内のタッチは同じ入力とされる。値をセットするのは分かるけど、取得してどうするんだろ?

StartPosition(Vector2)

最初に入力されたときのPosition。

StartTime(double)

入力されたときの時間。シーン開始時から? の経過時間。単位は秒。ミリ秒ではない。

TapCount(int)

タップ回数。指定時間内にタップが続くと加算される。時間は[ProjectSettings]の[InputSystemPackage]から[Default Tap Time]から設定できる。