今回はUnityのマウスクリックで音を鳴らすについて勉強するッピ!
マウスを押すとサウンド再生される仕組みをつくるッピ!
マウスクリックとサウンド再生?
まだ習ったことないわ!
マウス操作とサウンド再生はUnityの基礎の基礎ッピ!
絶対覚えておくと良いッピ!
これからこのマウス操作とサウンド再生を一緒に勉強して行くッピよ~
マウスクリックで音を鳴らす方法を学ぼう
必要なもの
まずは必要なものを用意するッピ!
- Unity
- Windows または Mac のパソコン
が必要ッピよ~!
まだ Unity をダウンロードしてない人は
↓ の記事を参考に必要なものをインストールするといいッピ!
Unityを起動する
まずはゲーム作成画面をつくってみるッピ!
Unity-Hubを立ち上げて、
2Dまたは3Dでプロジェクトをつくるッピよ~
できた!
いい感じッピ!
音声ファイルを用意しよう!
それじゃあ、さっそく音声をUnityで再生するっぴ!
・・・その前に、再生する音声が必要だっぴよ~
今回は効果音ラボさまで、好きな音声をお借りするッピ!
オッケー!
音声をAssetsに登録しよう
準備できたッピか?
それなら音声をAssetsに登録するッピ!
使いたい音声を、ドラッグ&ドロップでアセットの部分に登録するッピ!
ドラッグ&ドロップってなんだ??
たしか、
ファイルをマウスで選択したまま、
ファイルを移動する方法をドラッグ&ドロップっていうんじゃなかったかしら?
そうだったそうだった!
別のウィンドウからファイルを引っ張ってもってくれば良いんだな!?
こんな感じかしら?
いい感じだっぴ!
2人ともよく出来てるッピ♪
空のオブジェクトをつくる
まずは空のオブジェクトをつくるッピ!
やり方は
ヒエラルキー→右クリック→空のオブジェクト
で作成するッピ!
これでいいか?
すてきねっ!
ゲームオブジェクトに音声を登録する
作ったオブジェクトに
鳴らしたい音声をドラッグ&ドロップで登録するッピ!
またマウスでファイルを引っ張ってくるのね♪
登録できたかは、
右側のインスペクターで確認できるんだよな?
その通りッピ♪
ユウキくん、だんだんなれてきたッピね~!
C#スクリプトを作成する
次からプログラムを組んでいくッピよ~!
まずは画面下のAssetの部分で
右クリック→作成→C#スクリプト
を選択するッピ!
名前を
sound
に変更するッピよ~
できたわ!
プログラムを編集する
できたC#プログラムを
ダブルクリックして、スクリプトファイルを開くッピ!
もともと書かれている
1~2、7・13~17行目のプログラムを削除して、新しくプログラムを書いていくッピ~!
消しちゃっていいのか?
大丈夫だッピ~♪
このうさタブに任せるッピ!
using UnityEngine;
public class sound : MonoBehaviour
{
void Update()
{
//ここに新しいプログラムを入力
}
}
こんな感じで良いのかしら?
バッチリッピよ~!
アイカちゃん才能あるッピね♪
ちなみにこのプログラムは
using UnityEngine;
public class sound : MonoBehaviour
{
void Update()
{
//ここに新しいプログラムを入力
}
}
という意味になるッピ!
新たにプログラムを書き込む
void Update の中に、新しくプログラムを書いていくッピ!
if(Input.GetMouseButtonDown(0))
{
GetComponent<AudioSource>().Play();
}
と書き込むッピよ~
ちなみにこれは
if (Input.GetMouseButton(0))
{
GetComponent<AudioSource>().Play();
}
という意味になるッピ!
なるほど、こういう意味だったのか!
using UnityEngine;
public class sound : MonoBehaviour
{
void Update()
{
if(Input.GetMouseButtonDown(0))
{
GetComponent<AudioSource>().Play();
}
}
}
プログラムができたら、
ファイル→保存(Ctrl+S)
でセーブするッピよ~
オブジェクトにプログラムを組み込む
保存したプログラムを、オブジェクトに組み込んでいくッピ!
[sound]C#スクリプトを
GameObjectにドラッグ&ドロップするッピ~
右のインスペクターに
Sound(スクリプト)
があることを確認するッピ!
できたわ!
やったなアイカちゃん!
いい感じッピ!
動作確認
最後は動作確認ッピ~!
ゲームの上にある[▶]ボタンを押してゲームを開始するッピ!
できた~!
やったねユウキくんっ
Unityのマウス入力について
Unityのマウス入力には、
Inputメッソドを使うッピ!
プログラムメッソド | 発動条件 |
---|---|
Input.GetMouseButton | ボタンが押されていたら発動 |
Input.GetMouseButtonDown | ボタンが押された瞬間に発動 |
Input.GetMouseButtonUp | 押されたボタンが開放されたときに発動 |
インプットメッソド~?
って何だ?
インプットメッソドというのは、
マウスやキーボードなど、外部から入力があったときに
発動するプログラムをつくるときに使うものッピ!
そうなのね!
そしてマウスのInputメッソドは
Input.GetMouseButton
をつかうことが多いッピね~
なあ、うさタブ
using UnityEngine;
public class sound : MonoBehaviour
{
void Update()
{
if(Input.GetMouseButtonDown(0))
{
GetComponent<AudioSource>().Play();
}
}
}
じゃあこの、
Input.GetMouseButton(0)
の(0)ってなんだ??
なんで(0)なのか、理解できないんだけど・・・
それはズバリ
引数ッピね~!
引数~??
引数ってなんだったかしら・・・?
わたしまだ覚えてなくて
引数というのは、
プログラムが予め仕組んだ、分かれ道の条件のことだっピ!
if~~●●(分かれ道の条件)
{ プログラムの命令文 }
みたいなとき、
実際にその分かれ道の条件が満たされるもの変数を
仕込むことができるのが引数なんだッピ!
ど、どういうことかしら・・・?
むずかしくてワカンネーって
うさタブ!
つまり今回みたいな
(0)なら、マウスの左クリック
マウスの左を押したら発動するプログラム
というのを組むことができるんだッピ!
引数 | 対応するマウスの場所 |
---|---|
(0) | マウスの左ボタン |
(1) | マウスの右ボタン |
(2) | マウスのホイール |
わかった!
0が左クリック、1が右クリックみたいな感じになるのか!
その通りッピ!
つまりさっきのコードも、0から1に変えると、
枝分かれの条件が右クリックを押したら~に変わってしまうんだッピよ~
using UnityEngine;
public class sound : MonoBehaviour
{
void Update()
{
if(Input.GetMouseButtonDown(1)) // 右クリックされたら実行するプログラムです
{
GetComponent<AudioSource>().Play();
}
}
}
なるほどなー
勉強になったわっ!
- Assetsに音声ファイルを登録する
- ヒエラルキーから空のオブジェクトを作成する
- 空のオブジェクトに音声をドラッグ&ドロップで登録
- 音を鳴らすC#スクリプトを作成
- できたスクリプトを空のオブジェクトに登録
- テストプレイ
上手くできたッピか?
これからも色んなゲーム作りやプログラムの解説をしていくッピ!
次回も楽しみにしているッピよ~~!
UnityはC#を元に作られているッピ!
まだまだ Unity や C#について勉強したい人は↓の記事を参考にするッピ♪