前提・実現したいこと
sliderの値に合わせてaudioのテンポを音の高さを一定にしたまま
操作できるようにしたい
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
最初は音の高さを一定にはできなかったが音はsliderの値に合わせてテンポを操作できていたがスクリプトをいじってから音もでなくなってしまった
エラーメッセージ
該当のソースコード
sliderにアタッチしたスクリプト
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5using UnityEngine.Audio; 6 7public class ChageSliderScript : MonoBehaviour 8{ 9 public GameObject Dancer; 10 Animator anim; 11 Slider slider; 12 float slidervalue; 13 AudioSource audios; 14 public AudioMixer audiomix; 15 16 17 void Start() 18 { 19 slider = GetComponent<Slider>(); 20 slider.value = 0; 21 slidervalue = slider.value; 22 anim = Dancer.GetComponent<Animator>(); 23 audios = Dancer.GetComponent<AudioSource>(); 24 25 } 26 27 // Update is called once per frame 28 void Update() 29 { 30 if (slider.value != slidervalue) 31 { 32 slidervalue = slider.value; 33 } 34 anim.speed = slider.value / 10; 35 audios.pitch = slider.value / 10; 36 audiomix.SetFloat("Pitch Param", 10/slider.value); 37 if (slider.value == 11) { 38 39 anim.speed = 2; 40 audios.pitch = 2; 41 audiomix.SetFloat("Pitch Param", 0.5f); 42 } 43 44 } 45}
試したこと
Pitch Param は audio mixer の pitch shifter の pitch の変数の名前
audio.pitchで音の再生速度と高さがあがるので
音の高さを一定にするために
audiomix.SetFloat("Pitch Param",10/slider.value)
で補正している
Dancerはaudio sourceをコンポーネントにもつモデル
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー