|
|
行1: |
行1: |
− | ==SEを鳴らしてみる==
| + | [[Unity/Csharp/音/基本]] |
− | #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が表示されて音が鳴るのを防ぐ方法==
| + | [[Unity/Csharp/音/生成]] |
− | seをつけたGameObjectのPlayOnAwakeのチェックを外す
| + | |
− | | + | |
− | ==BGMオンオフ==
| + | |
− | <pre>
| + | |
− | 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;
| + | |
− | }
| + | |
− | }
| + | |
− | </pre>
| + | |
− | | + | |
− | ==音量大小==
| + | |
− | UI/Sliderを用意。
| + | |
− | <pre>
| + | |
− | 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);
| + | |
− | }
| + | |
− | </pre>
| + | |
− | | + | |
− | ==音を遅くしたり速くしたり==
| + | |
− | <pre>
| + | |
− | AudioSource bgmSource;
| + | |
− | bgmSource.Play();
| + | |
− | bgmSource.pitch = 2f;
| + | |
− | </pre>
| + | |
− | | + | |
− | ==シーン遷移してもBGMを消さない==
| + | |
− | GameObjectに以下を追加して、オブジェクトを消さなければ良い。
| + | |
− | <pre>
| + | |
− | public class BgmAudioScript : MonoBehaviour
| + | |
− | {
| + | |
− | void Start()
| + | |
− | {
| + | |
− | DontDestroyOnLoad(this);
| + | |
− | }
| + | |
− | }
| + | |
− | </pre>
| + | |
− | | + | |
− | ==音が遅延するとき==
| + | |
− | #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
| + | |