チャムコード

チャーさんのUnityゲームラボです。Unityでゲーム制作する時に使うコードやノウハウをメインに発信しています。Unityでゲーム制作したいと思っているなら読んでください。

ゲーム開発ノウハウ

unityでキー入力で攻撃する方法(3分以内にできます)

投稿日:2020年4月16日 更新日:

うも、チャーさんです。

あなたはunityでキー入力による攻撃を

したいですか?

 

この記事ではunityでキー入力で攻撃を

する方法を書いてますので、あなたがこれを読めば、

キー入力で攻撃ができるようになります。

 

なので、unityでキー入力したら攻撃

というようなものを作りたい場合、

このまま読んでみてください。

 

unityでキー入力による攻撃をするには

 

で結論からですが、

unityでキー入力で攻撃するには、

 

・if文

・Input.GetKey()関数

・攻撃の記述

 

この3つだけで可能です。

 

 

これだけだとイメージ湧きづらいと

思うので参考として具体的なコード出します。

コード例は以下です。

 

if (Input.GetKeyDown (KeyCode.A)) {

ここに攻撃の記述;

}

 

これだけでキー入力での攻撃は可能です。

あとは上記コードをupdate関数の中に書きましょう。

 

void Update () {

 if (Input.GetKeyDown (KeyCode.A)) {

ここに攻撃の記述;

}

}

 

でこれでunityでキー入力により攻撃

できる理由ですが、コードの解説とともに

説明していきます。

 

Input.Getkey()でキー入力を扱おう

 

まず本記事のメイン内容に関わるのが、

Input.GetKey()関数です。

 

例で出したコードでいうと以下の部分です。

Input.GetKeyDown (KeyCode.A)

このInputというのはキー入力を扱うものです。

 

(unityではキー入力に関する機能はもう関数が

用意されてるので特に難しいことをしなくてokです。)

なのでunityでキー入力で攻撃したい場合、

このInputを使えばできます。

 

GetKeyDownとは

 

でここからもう少し説明なのですが、

ドットで繋がってるGetKeyDownというのは、

キーボードのキーが押されたら、

という意味になります。

 

GetKeyDownの引数でキー判定

 

そしてGetKeyDownの後ろの()の引数の部分ですが、

 

例 Input.GetKeyDown (KeyCode.A)

この()の中のKeyCode.の後ろの部分が、

どのキーボードを押したらという意味になります。

 

例えば上記の(KeyCode.A)だと、

キーボードのAを押せば、という意味になりますし、

(KeyCode.S)であればキーボードのSを押せば

という意味になります。

 

なので攻撃に割り当てたいキーをこのKeyCode.の

後に書けばいいでしょう。

 

ちなみにInput.GetKey()にはこの記事で紹介した

GetKeyDown以外に他にも色々種類がありますが、

普通に攻撃するだけならGetKeyDownで十分です。

 

色々キー入力に幅をもたせたい場合、

Unity Input GetKeyあたりで調べると出てきます、

なので参考までに。

 

if文と攻撃の記述で完成させよう

 

で話に戻りますが、

 

あとは、キー入力されたら攻撃なので、

if文の()の条件文の中に入れてやります。

if (Input.GetKeyDown (KeyCode.A)) {

ここに攻撃の記述;

}

 

上記記述だともしキーボードのAが押されたら、

{}内の記述を実行する、という意味になります。

 

であとはあなたがやりたい攻撃記述を

if文の{}の中に書けばOKです。

 

一番簡単に攻撃したのがわかりやすいのは、

Debug.Log(“攻撃した”);

などと記述するのがわかりやすいです。

 

if (Input.GetKeyDown (KeyCode.A)) {

Debug.Log(“攻撃した”);

}

するとキーボードのAを押すと、

攻撃した、とデバッグの画面に表示される

ようになります。

 

デバッグ画面の位置は画面左下

 

ちなみにデバッグの画面は、

unityで画面レイアウトかえてない場合、

画面の下の左(画面枠部分)に表示されます。

 

なのでそこをみると良いです。

 

ちなみにそこをクリックするとデバッグの画面が

少し大きくなって表示されます。(見やすいです)

という感じで、攻撃の記述を書けば、

攻撃が可能になります。

 

で、とりあえずキー入力で攻撃

はこれで完成なのですが、

 

応用したければアニメーションをつけよう

 

あとはここから応用に入り、

実際にプレイヤーオブジェクトに

攻撃のアニメーションをさせたりすれば、

 

キー入力で実際にプレイヤーが攻撃アニメーションを

してくれて動いてくれるので、

よりゲームっぽくなって面白いでしょう。

 

本記事はキー入力で攻撃までなので

アニメーションは割愛しますが、

 

キー入力で攻撃アニメーションもできるので、

知っとくとゲーム作るなら役立つでしょう。

 

unityでキー入力による攻撃までの手順

 

ということでunityでキー入力による

攻撃の説明はしたのでここからは手順だけ

書いときます。

 

わかる人は飛ばしてokです。

 

オブジェクトを用意する

 

で、まずはオブジェクトを用意しましょう。

 

スクリプトをはる

 

次にそのオブジェクトにスクリプトを貼りましょう。

Add Componentからやればokです。

 

記述をかく

 

であとは、本記事で紹介した、

記述をupdate関数内に書きましょう。

 

以下の感じ 例

void Update () {

 if (Input.GetKeyDown (KeyCode.A)) {

Debug.Log(“攻撃した”);

}

}

テストする

 

あとは、再生ボタンを押して、

実際にキー入力して動くか試しましょう。

動いたらokです。

 

まとめ

 

ということでまとめです。

 

unityでキー入力による攻撃をしたい場合は、

if文

Input()関数

攻撃の記述

この3つを書きましょう。

 

そうすればunityでキー入力で攻撃できます。

キー入力して攻撃はゲームで必須なので

この記事を参考にして試してみてください。

 

それでは読んでもらってありがとうございました。

チャーさん

 

-ゲーム開発ノウハウ

関連記事

Unityでジャンプする方法(空中ジャンプ防止機能付き)

どうも、チャーさんです。   あなたはUnityでジャンプ機能を作りたい と思っていますか?この記事では、パソコンの キーボードを押したら、ジャンプする機能の作り方を説明します。 &nbsp …

no image

unityでターン制のゲームを作るにはコレを使いましょう

どうも、チャーさんです。 あなたはunityでターン制ゲームを作りたい そう思っていませんか?   この記事ではunityでターン制のゲームを 作る方法を書いています。   なので …

UnityでHPを回復させる機能を作る方法(簡単なやり方です)

どうも、チャーさんです。 この記事では、UnityでHPを回復させる方法を お話しします。   ゲームでは基本プレイヤーが回復することが多い のでプレイヤーのHPの回復方法を書きます。 &n …

Unityでのゲームオーバー機能の作り方をわかりやすく説明

  どうも、チャーさんです。 この記事では、Unityでゲームオーバー画面の 作り方を説明します。   この記事を読めば、あなたはゲームオーバー画面を作れて さらにゲームオーバーの …

Unityで動く床(滑らない、往復)の作り方はコチラ

どうも、チャーさんです。 あなたはUnityで動く床、それも滑り落ちず 往復するやつを作りたいと思っていますか?   この記事を読めばそれは実現します。 ですが読まないと結構つまづきます。 …

Unityでオブジェクトを上下移動(往復)させる機能の作り方

どうも、チャーさんです。 あなたはUnityでオブジェクトを自動で上下移動させたい と思っていますか?   オブジェクトを上下に自動で往復させたり、 動く床として上下に自動で往復させたり、 …

最新記事

チャーさん

Unityに関する記事を書いてます。

 

[簡単な経歴]

 

2018年-プログラムを始めUnityの存在を知りハマる。

2019年-エンジニアとして仕事開始(web系)

2021年-UnityでVR開発等にも手を出し始める。

現在-エンジニアとして活動しながらUnityも続行中。

 

youtubeでは、Unityに関する動画をあげてるので、

あなたのUnityスキルアップにどうぞ。