こんにちは、うら干物です。
長い間やってきたCrossPlatformInputについては今日が最終回です。
最後はMobileTiltControlRigのPrefabについてです。
全力で傾きを使う際に使ってみてください。
この記事にはUnity5.4.0f3を使用しています。
MobileTiltControlRig
MobileTiltControlRigには傾き用のコンポーネントのみがあります。
そのため画面上をみると何も無いように見えてしまいます。
Prefabの構成について
Prefabの構成は以下のようになっています。
- TiltSteerInputV
- TiltSteerInputH
CrossPlatformInputの主な使い方
ここでCrossPlatformInputアセットを使う際に、ユーザーに入力された値の取得方法について説明致します。
何度もコピペ説明してきたCrossPlatformInputManagerについてはこれが最後です。
CrossPlatformInputアセットにはいくつかのコンポーネントがありますが、スクリプトとしてはUnityStandardAssets.CrossPlatformInput.CrossPlatformInputManagerクラスのみアクセスすればOKです。
CrossPlatformInputManagerクラスには多くのPublic関数があります。
その中で以下の関数を扱えれば、CrossPlatformInputManagerは大体扱えると思いますよー。
// CrossPlatformInputManagerはUnityStandardAssets.CrossPlatformInputの名前空間にあります。 // 下記はusing UnityStandardAssets.CrossPlatformInput;を使用しています。 // 指定したAxisの情報が存在するかを調べる。 bool axisExists = CrossPlatformInputManager.AxisExists( "AxisName" ); // 指定したButtonの情報が存在するかを調べる。 bool buttonExists = CrossPlatformInputManager.ButtonExists( "ButtonName" ); // 指定したAxisのパラメーターを取得する。 float axis = CrossPlatformInputManager.GetAxis( "AxisName" ); // 指定したButtonが押されているか調べる。 bool button = CrossPlatformInputManager.GetButton( "ButtonName" ); // 指定したButtonが押した瞬間か調べる。 bool buttonDown = CrossPlatformInputManager.GetButtonDown( "ButtonName" ); // 指定したButtonが上げられた瞬間か調べる。 bool buttonUp = CrossPlatformInputManager.GetButtonUp( "ButtonName" );
使用されているコンポーネントについて
MobileSingleStickControlでは以下のコンポーネントが使用されています。
- TiltSteerInputV
- TiltSteerInputH
各コンポーネントについては次に説明します。
TiltInput
傾きを取得するコンポーネントです。そのためモバイル端末上でないと処理をチェックできません。
MobileTiltControlRigでは、TiltSteerInputVとTiltSteerInputHで使用されています。
以下設定できるパラメーターです。
- AxisMapping
傾きの値を、
指定したAxis名として登録して使用する
バーチャルパッドの指定した座標として使用する。
かを選択できる。 - TiltAroundAxis
ForwardAxis:Z軸の傾きを取得する。
SidewaysAxis:X軸の傾きを取得する。 - FullTiltAngle
取得できる最大の角度。ラジアン値ではなく角度。 - CentreAngleOffset
取得した角度にオフセットとして足される角度。これもラジアン値ではなく角度。
サンプル
さて、今回もMobileTiltControlRigを使ったサンプルを作ってみたのですが、エディタ上では動かないのでスクリプトのみの公開になります。
絵は脳内で保管してくださいませ。