X

Unity Input System

&NewLine;<p>Unity InputSystemでキーの割り当てを変更する方法です。今回はPlayer InputのCreate Actionsで生成されるInput ActionsのAction Maps -&gt&semi; Player -&gt&semi; Actions -&gt&semi; Fire に Space &lbrack;Keyboard&rsqb;を追加してそれを実行後にスクリプトから変更します。<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>パッケージマネージャーからInput Systemをインストールします。<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>オブジェクト&lpar;GameObject&rpar;に Player Input コンポーネントを追加します。Create ActionsボタンをクリックしてInput Actionsを作成します。inputactionsファイルを選択して Edit asset ボタンをクリックします。<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>Action Maps -&gt&semi; Player -&gt&semi; Actions -&gt&semi; Fire を選択します。All Control SchemesをKeyboardMouseに変更します。Fireの&plus;ボタンをクリックしてAdd Bindingを選択します。PropertiesのBinding &&num;8211&semi; Path をクリックします。Keyboard -&gt&semi; By Location of Key &lpar;Using US Layout&rpar;のSpaceを選択します。Use in Control Scheme の Keyboard&amp&semi;Mouseをチェックします。<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>スクリプトを追加、変更します。以下のように変更します。クラスの宣言は省略しています。<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<pre class&equals;"EnlighterJSRAW" data-enlighter-language&equals;"generic" data-enlighter-theme&equals;"" data-enlighter-highlight&equals;"" data-enlighter-linenumbers&equals;"" data-enlighter-lineoffset&equals;"" data-enlighter-title&equals;"" data-enlighter-group&equals;""> &NewLine; public PlayerInput playerInput&semi;&NewLine; private InputAction fireInputAction&semi;&NewLine; private InputBinding keyboardInputBinding&semi;&NewLine;&NewLine; &sol;&sol; Start is called before the first frame update&NewLine; void Start&lpar;&rpar;&NewLine; &lbrace;&NewLine; playerInput &equals; GetComponent&lt&semi;PlayerInput>&lpar;&rpar;&semi;&NewLine;&NewLine; fireInputAction&equals; playerInput&period;actions&lbrack;"Fire"&rsqb;&semi;&NewLine; &sol;&sol; keyboardInputBinding&equals; fireInputAction&period;bindings&lbrack;5&rsqb;&semi;&NewLine; fireInputAction&period;ApplyBindingOverride&lpar;new InputBinding&lpar;&rpar; &lbrace; path &equals; "&lt&semi;Keyboard>&sol;space"&comma; overridePath &equals; "&lt&semi;Keyboard>&sol;q" &rcub;&rpar;&semi;&NewLine; &sol;&sol; fireInputAction&period;ApplyBindingOverride&lpar;5&comma; "&lt&semi;Keyboard>&sol;q"&rpar;&semi;&NewLine; &sol;&sol; keyboardInputBinding &equals; fireInputAction&period;bindings&lbrack;5&rsqb;&semi;&NewLine;&NewLine; &rcub;&NewLine;&NewLine; &sol;&sol; Update is called once per frame&NewLine; void Update&lpar;&rpar;&NewLine; &lbrace;&NewLine;&NewLine; &rcub;&NewLine;&NewLine; public void OnMove&lpar;InputValue value&rpar;&NewLine; &lbrace;&NewLine; var wasd &equals; value&period;Get&lt&semi;Vector2>&lpar;&rpar;&semi;&NewLine; &rcub;&NewLine;&NewLine; public void OnLook&lpar;InputValue value&rpar;&NewLine; &lbrace;&NewLine;&NewLine; &rcub;&NewLine;&NewLine; public void OnFire&lpar;&rpar;&NewLine; &lbrace;&NewLine; &sol;&sol; Spaceキーの代わりにQキーを押すと以下のコートが実行されます&NewLine; &rcub;&NewLine;<&sol;pre>&NewLine;&NewLine;&NewLine;&NewLine;<p>keyboardInputBinding&period;path が &&num;8220&semi;&lt&semi;Keyboard&gt&semi;&sol;space&&num;8221&semi; から&&num;8221&semi;&lt&semi;Keyboard&gt&semi;&sol;q&&num;8221&semi; に変更されます。qは大文字、小文字どちらでも構わないようです。keyboardInputBinding&period;groupsはKeyboard&amp&semi;Mouseとなります。<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>ApplyBindingOverrideはInputBindingクラスを作成する方法とindexを指定する方法とあります。<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>ActionsのFireという名前がそのままOnFireというメソッドの名前になります。<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>運用としてはUIにCanvasを作成してインタラクションコンポーネントを利用して変更することになります。ほかのゲームでは左右に矢印ボタンを配置してクリックして選択したり、キー入力を受け付けたりして変更しています。<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<blockquote class&equals;"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Unityの新しい入力システムInputSystemを使ってみる<&sol;p><cite>https&colon;&sol;&sol;gametukurikata&period;com&sol;basic&sol;inputsystem<&sol;cite><&sol;blockquote>&NewLine;&NewLine;&NewLine;&NewLine;<p>こちらのサイトが参考になります。<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p><&sol;p>&NewLine;

kawano:
Related Post