facebook twitter hatena line email

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

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(音素材について)
(音の切り替えでブツブツ音がする場合の対応)
行104: 行104:
 
==音の切り替えでブツブツ音がする場合の対応==
 
==音の切り替えでブツブツ音がする場合の対応==
 
AudioSourceが同一で、AudioClipのみを切り替えると、ブツブツ音がなる。
 
AudioSourceが同一で、AudioClipのみを切り替えると、ブツブツ音がなる。
AudioSourceを、それぞれ用意して、切り替えればうまくいく。
+
AudioSourceを、それぞれ用意して、切り替えればうまくいくかも。→ やり方がまずいのかうまくいかなかった・・。
  
 
参考:http://blog.livedoor.jp/be_someone/archives/52401691.html
 
参考:http://blog.livedoor.jp/be_someone/archives/52401691.html

2020年11月7日 (土) 18:41時点における版

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);
    }

音を遅くしたり速くしたり

AudioSource bgmSource;
bgmSource.Play();
bgmSource.pitch = 2f;

シーン遷移しても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/

音の切り替えでブツブツ音がする場合の対応

AudioSourceが同一で、AudioClipのみを切り替えると、ブツブツ音がなる。 AudioSourceを、それぞれ用意して、切り替えればうまくいくかも。→ やり方がまずいのかうまくいかなかった・・。

参考:http://blog.livedoor.jp/be_someone/archives/52401691.html