入力の様子を十字表示で確認できるようにしたいです十字表示を担当するコントローラ(書籍では監督)とアナログ入力を担当するコントローラから構成しますこれら2つの機能は、入出力を一手に引き受けるViewコントローラオブジェクトにアタッチしますCanvasにSliderを追加2つのSliderを作成します。入力処理を専門に処理するスクリプトを作成します変更、修正に強いプロジェクトとするため、さらにイベントを取り入れますイベントについてコード中には、どのイベントハンドラ(メソッド)を呼び出すかを記述しませんこれにより依存性を下げています(依存とは、特定の相手を必ず必要とする状態。強いほど抜け出せなくなる。次のような機能を追加する要望があった場合、登録するイベントハンドラの差し替え、または追加で楽に対応ができます別々になったスライダーにしたい数値で表示したいキャラクタの移動に使いたいこれくらい、1つのスクリプトで追加できると思われるかもしれません。プロジェクトはこれだけが目的ではないですよね。UIには、もっと多くの表示が必要でしょうし、ゲーム本体も実装されていません。1つのスクリプトにこだわると、どんどん複雑性が増してきます。変更・機能追加に弱い、つまり依存性が強いよくないプロジェクトが完成してしまいます。機能を追加しましたが、変更点は最小限に留まっています拡張性に強いコードになっています。バグがあっても特定のクラスだけをメンテナンスすればいいので保守性も同時に向上しますInputGetAxisオブジェクト図(Cube)ダウンロード実用に向いていないオブジェクト図すべての機能を1つのクラスに詰め込むとバグ修正が別のバグを生むことになりますし、拡張にも多くの手間がかかります。if文などの分岐も入ってきてどうにもならなくなります初級レベルの練習、また、ちょっとした機能の確認であれば効率的に使えるので大丈夫ですInputGetAxisオブジェクト図(Bad)ダウンロード応用(ローカル空間:ローカル座標系での移動)JoyStick入力で前(z軸)に進むことを考えてみましょうこの練習では、機能確認になります。粒度が細かい(細かくスクリプト分けをしている)ので、実際のコードではもう少しまとめることが多いですね。これが良くないというわけではないので、理解ができる範囲で粒度を考えましょう実行結果どのように動作させるのか見ていきましょう移動は、ローカル座標系(自分から見て前方をz軸とします)になりますラジコンの操作がこのようになりますねMoveControllerの更新MoveメソッドをMoveSelfメソッドに名前を変更しますVisualStudioで「名前の変更」を選択して作業をしましょう。これは、利用されている箇所を判断して同時に変更してくれる機能です。}}上ではなく、前へ進むようにするtransform.Translateメソッドの引数について見ていきますVector3.forwardは、ローカル座標系(自分の向き)を指しています。Space.World);進行方向を見るようにする進行方向に向きを変えますLookAtメソッドは、引数のベクトル方向にローカル座標系でのz軸を向けますtransform.positionは現在のCubeの位置ですねmoveXZはJoyStickの入力でXZ平面に変換されていますので、この2つを足すと移動したい方向が取得できることになります。【Unity】オプション設計のサンプルUnityでオプション登録を実装するためのサンプルコードです。コメントをキャンセルメールアドレスが公開されることはありません。付いている欄は必須項目ですコメント名前メールアドレスウェブサイト上に表示された文字を入力してください。コメントデータの処理方法の詳細はこちらをご覧ください。Unity【Unity】オプション設計のサンプルUnityでオプション登録を実装するためのサンプルコードです。