「Unity/Csharp/音/基本」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「 ==SEを鳴らしてみる== #GameObjectに名前をつけて(ここではSeTap)AudioSourceをAddComponentする #アサインしたAudioSourceのAudioClipにmp3音源を...」) |
(→音の切り替えでブツブツ音がする場合の対応) |
||
行110: | 行110: | ||
参考:http://blog.livedoor.jp/be_someone/archives/52401691.html | 参考:http://blog.livedoor.jp/be_someone/archives/52401691.html | ||
+ | |||
+ | ==mp3をResoucesからとってきて再生== | ||
+ | <pre> | ||
+ | //Load an AudioClip (Assets/Resources/Audio/audioClip01.mp3) | ||
+ | var audioClip = Resources.Load<AudioClip>("Audio/audioClip01"); | ||
+ | AudioSource audioSource = GameObject.Find("AudioSource").GetComponent<AudioSource>(); | ||
+ | audioSource.clip = audioClip; | ||
+ | audioSource.Stop(); | ||
+ | audioSource.PlayOneShot(audioSource.clip); | ||
+ | audioSource.Play(); | ||
+ | <pre> | ||
+ | 参考:https://docs.unity3d.com/jp/current/ScriptReference/Resources.Load.html |
2021年11月12日 (金) 01:56時点における版
目次
SEを鳴らしてみる
- GameObjectに名前をつけて(ここではSeTap)AudioSourceをAddComponentする
- アサインしたAudioSourceのAudioClipにmp3音源をいれる
- 以下AudioScriptをオブジェクトに紐づける
using System.Collections; using System.Collections.Generic; using UnityEngine; public class MainScript : MonoBehaviour { public AudioSource sound01; void Start () { sound01 = GameObject.Find("SeTap").GetComponent<AudioSource>(); sound01.Stop (); // sound01.Play (); // BGMの場合はこちら sound01.PlayOneShot(sound01.clip); // SEの場合はこちら(音を重ねることができる) } void Update () { } }
画面表示時に設置したGameObjectが表示されて音が鳴るのを防ぐ方法
seをつけたGameObjectのPlayOnAwakeのチェックを外す
BGMオンオフ
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class AudioScene : MonoBehaviour { Toggle bgmToggle; AudioSource bgmSource; void Start() { bgmToggle = GameObject.Find("BgmToggle").GetComponent<Toggle>(); bgmToggle.onValueChanged.AddListener(delegate { ToggleValueChanged(bgmToggle); }); Debug.Log("bgmToggle.isOn=" + bgmToggle.isOn); bgmSource = GameObject.Find("Bgm").GetComponent<AudioSource>(); bgmSource.mute = !bgmToggle.isOn; } void ToggleValueChanged(Toggle change) { Debug.Log("bgmToggle.isOn=" + bgmToggle.isOn); bgmSource = GameObject.Find("Bgm").GetComponent<AudioSource>(); bgmSource.mute = !bgmToggle.isOn; } }
音量大小
UI/Sliderを用意。
using UnityEngine.UI; Slider bgmSlider; void Start() { bgmSlider = GameObject.Find("BgmSlider").GetComponent<Slider>(); bgmSlider.onValueChanged.AddListener(delegate { SliderValueChanged(bgmSlider); }); // bgmText.text = "First Value : " + bgmSlider.value; Debug.Log("bgmSlider.value=" + bgmSlider.value); } void SliderValueChanged(Slider change) { // bgmText.text = "New Value : " + bgmSlider.value; Debug.Log("bgmSlider.value=" + bgmSlider.value); }
音を遅くしたり速くしたり
AudioSource bgmSource; bgmSource.Play(); bgmSource.pitch = 2f;
シーン遷移してもBGMを消さない
GameObjectに以下を追加して、オブジェクトを消さなければ良い。
public class BgmAudioScript : MonoBehaviour { void Start() { DontDestroyOnLoad(this); } }
音が遅延するとき
- Edit/ProjectSettings/Audioを選択
- AudioManagerのDSPBufferSizeをBest Latencyに
音素材について
movからmp3へ https://convertio.co/ja/mov-mp3/
mp3を切り出す http://audio-cutter.com/ja/
音の切り替えでブツブツ音がする場合の対応
- AudioSourceが同一で、AudioClipのみを切り替えると、ブツブツ音がなる。
- AudioSourceを、それぞれ用意して、切り替えればうまくいくかも。→ やり方がまずいのかうまくいかなかった・・。
他の描画など処理が、重いのが、原因かも。・・
参考:http://blog.livedoor.jp/be_someone/archives/52401691.html
mp3をResoucesからとってきて再生
//Load an AudioClip (Assets/Resources/Audio/audioClip01.mp3) var audioClip = Resources.Load<AudioClip>("Audio/audioClip01"); AudioSource audioSource = GameObject.Find("AudioSource").GetComponent<AudioSource>(); audioSource.clip = audioClip; audioSource.Stop(); audioSource.PlayOneShot(audioSource.clip); audioSource.Play(); <pre> 参考:https://docs.unity3d.com/jp/current/ScriptReference/Resources.Load.html