facebook twitter hatena line email

Unity/Csharp/

提供: 初心者エンジニアの簡易メモ
2020年9月19日 (土) 13:07時点におけるAdmin (トーク | 投稿記録)による版 (シーン遷移してもBGMを消さない)

移動: 案内検索

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/