facebook twitter hatena line email

「Unity/Csharp/音」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(シーン遷移してもBGMを消さない)
(シーン遷移してもBGMを消さない)
行83: 行83:
 
}
 
}
 
</pre>
 
</pre>
 +
 +
==音が遅延するとき==
 +
#Edit/ProjectSettings/Audioを選択
 +
#AudioManagerのDSPBufferSizeをBest Latencyに
  
 
==音素材について==
 
==音素材について==

2020年9月19日 (土) 13:07時点における版

SEを鳴らしてみる

  1. GameObjectに名前をつけて(ここではSeTap)AudioSourceをAddComponentする
  2. アサインしたAudioSourceのAudioClipにmp3音源をいれる
  3. 以下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);
    }

シーン遷移してもBGMを消さない

GameObjectに以下を追加して、オブジェクトを消さなければ良い。

public class BgmAudioScript : MonoBehaviour
{
    void Start()
    {
            DontDestroyOnLoad(this);
    }
}

音が遅延するとき

  1. Edit/ProjectSettings/Audioを選択
  2. AudioManagerのDSPBufferSizeをBest Latencyに

音素材について

movからmp3へ https://convertio.co/ja/mov-mp3/

mp3を切り出す http://audio-cutter.com/ja/