
今回はUnityのキーボードで音を鳴らすについて勉強するッピ!

何かキーを押すとサウンド再生される仕組みをつくるッピ!

キー入力とサウンド再生?

まだ習ったことないわ!

キーボードの扱いとサウンド再生はUnityの基礎の基礎ッピ!
絶対覚えておくと良いッピ!

これからこのキーボードとサウンド再生を一緒に勉強して行くッピよ~
キーボードで音を鳴らす方法を学ぼう
必要なもの

まずは必要なものを用意するッピ!

- Unity
- Windows または Mac のパソコン
が必要ッピよ~!

まだ Unity をダウンロードしてない人は
↓ の記事を参考に必要なものをインストールするといいッピ!
Unityを起動する

まずはゲーム作成画面をつくってみるッピ!
Unity-Hubを立ち上げて、
2Dまたは3Dでプロジェクトをつくるッピよ~


できた!

いい感じッピ!
音声ファイルを用意しよう!

それじゃあ、さっそく音声をUnityで再生するっぴ!

・・・その前に、再生する音声が必要だっぴよ~


今回は効果音ラボさまで、好きな音声をお借りするッピ!



オッケー!
音声をAssetsに登録しよう

準備できたッピか?
それなら音声をAssetsに登録するッピ!


使いたい音声を、ドラッグ&ドロップでアセットの部分に登録するッピ!

ドラッグ&ドロップってなんだ??

たしか、
ファイルをマウスで選択したまま、
ファイルを移動する方法をドラッグ&ドロップっていうんじゃなかったかしら?

そうだったそうだった!
別のウィンドウからファイルを引っ張ってもってくれば良いんだな!?


こんな感じかしら?

いい感じだっぴ!
2人ともよく出来てるッピ♪
オーディオソース(音源物体)をつくる


まずはオーディオソースのオブジェクトをつくるッピ!

やり方は
ヒエラルキー→右クリック→オーディオ→オーディオソース
で作成するッピ!


こんな感じかな!

すてきねっ!
C#スクリプトを作成する

次からプログラムを組んでいくッピよ~!


まずは画面下のAssetの部分で
右クリック→作成→C#スクリプト
を選択するッピ!

名前を
keyInput
に変更するッピよ~


できたわ!
プログラムを編集する

できたC#プログラムを
ダブルクリックして、スクリプトファイルを開くッピ!


もともと書かれている
1~2行目のプログラムを削除して、新しくプログラムを書いていくッピ~!

消しちゃっていいのか?

大丈夫だッピ~♪
このうさタブに任せるッピ!

using UnityEngine;
public class keyInput : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}

こんな感じで良いのかしら?

バッチリッピよ~!
アイカちゃん才能あるッピね♪

ちなみにこのプログラムは
using UnityEngine;
public class keyInput : MonoBehaviour
{
void Start()
{
//ここに新しいプログラムを入力
}
void Update()
{
//ここに新しいプログラムを入力
}
}
という意味になるッピ!
新たにプログラムを書き込む


まずは、classのすぐ下に
新しくプログラムを書いていくッピ!
public AudioClip sound1;
AudioSource SE;
と書き込むッピよ~

これは
public AudioClip sound1;
AudioSource SE;
という意味になるッピ!


void Start の中に、新しくプログラムを書いていくッピ!
SE = GetComponent<AudioSource>();
と書き込むッピよ~

ちなみにこれは
SE = GetComponent<AudioSource>();
という意味になるッピ!

void Update の中に、新しくプログラムを書いていくッピ!
if (Input.GetKey (KeyCode.Return))
{
SE.PlayOneShot(sound1);
}
と書き込むッピよ~

これは
if (Input.GetKey (KeyCode.Return))
{
SE.PlayOneShot(sound1);
}
という意味になるッピ!

なるほど、こういう意味だったのか!
using UnityEngine;
public class keyInput : MonoBehaviour
{
public AudioClip sound1;
AudioSource SE;
// Start is called before the first frame update
void Start()
{
SE = GetComponent<AudioSource>();
}
// Update is called once per frame
void Update()
{
if (Input.GetKey (KeyCode.Return))
{
SE.PlayOneShot(sound1);
}
}
}


プログラムができたら、
ファイル→保存(Ctrl+S)
でセーブするッピよ~
オーディオソースにプログラムを組み込む

保存したプログラムを、オーディオソースに組み込んでいくッピ!


[keyInput]C#スクリプトを
Audio Sourceにドラッグ&ドロップするッピ~

右のインスペクターに
keyInput(スクリプト)
があることを確認するッピ!

これかしら?


そうしたら、
音声ファイルをSound1
にドラッグ&ドロップするッピ!

できたぜ!


いい感じッピ!
動作確認


最後は動作確認ッピ~!
ゲームの上にある[▶]ボタンを押してゲームを開始するッピ!

キーボードの
エンターキー(Return↵)
を押して、音が聞こえるか確認するッピ!

できた~!

やったねユウキくんっ
Unityのキーボード入力について

Unityのキーボード入力には、
Input.GetKeyメッソドを使うッピ!
プログラムメッソド | 発動条件 |
---|---|
Input.GetMouseButton | マウスのボタンが押されていたら発動 |
Input.GetKey | キーボードのキーが押されたら発動 |

インプットメッソド~?
って何だ?

インプットメッソドというのは、
マウスやキーボードなど、外部から入力があったときに
発動するプログラムをつくるときに使うものッピ!

インプットゲットキーというのは、
キーボードでキーを入力されたあとに発動するプログラムッピ!

そうなのね!

へ~
だけどさ、うさタブ
using UnityEngine;
public class keyInput : MonoBehaviour
{
public AudioClip sound1;
AudioSource SE;
// Start is called before the first frame update
void Start()
{
SE = GetComponent<AudioSource>();
}
// Update is called once per frame
void Update()
{
if (Input.GetKey (KeyCode.Return))
{
SE.PlayOneShot(sound1);
}
}
}

この、
Input.GetKey (KeyCode.Return)
のやつ
エンターキー以外にもできないのか?

エンターキーだけじゃなく他のキーも使いたいんだけどな・・・

もちろんできるッピね~!

今回使ったエンターキー以外にも、
よく使うキーを紹介するッピ!
これをキーコードというッピ! 覚えておくと良いッピよ~
キーコード | 対応するキー |
---|---|
Return | エンターキー |
Backspace | バックスペースキー |
Delete | デリートキー |
Tab | タブキー |
Escape | エスケープキー |
Space | スペースキー |
UpArrow | ↑ |
DownArrow | ↓ |
RightArrow | → |
LeftArrow | ← |
数字キーコード | 対応するキー |
---|---|
Alpha0 | 0 |
Alpha1 | 1 |
Alpha2 | 2 |
Alpha3 | 3 |
Alpha4 | 4 |
Alpha5 | 5 |
Alpha6 | 6 |
Alpha7 | 7 |
Alpha8 | 8 |
Alpha9 | 9 |

すっげええ!
こんなにあるのか

まだまだあるッピよ~!
詳しくは、Unityのリファレンスをチェックすると良いッピ♪

勉強になったぜ!

今日もまたひとつ学んだわ!
- 音声素材をAssetに登録
- ヒエラルキー→右クリック→オーディオソースを作成
- Assets→右クリック→C#スクリプト
- プログラムを作成
- C#スクリプトをオーディオソースに組み込む
- 音声素材をインスペクターのコンポーネントに組み込む
- テストプレイ

上手くできたッピか?
これからも色んなゲーム作りやプログラムの解説をしていくッピ!
次回も楽しみにしているッピよ~~!

UnityはC#を元に作られているッピ!
まだまだ Unity や C#について勉強したい人は↓の記事を参考にするッピ♪