public void VolumeChanged(DialInteractable dial) { float ratio = dial.CurrentAngle / dial.RotationAngleMaximum; m_VolumeRatio = ratio; Tune(); }
public void TuningChanged(DialInteractable dial) { //off if (dial.CurrentAngle < 0.01f) { MusicSource.Stop(); NoiseSource.Stop(); } else if (!MusicSource.isPlaying) { MusicSource.Play(); NoiseSource.Play(); } if (MusicClips.Length == 0) { return; } float ratio = dial.CurrentAngle / dial.RotationAngleMaximum; float stepSize = dial.RotationAngleMaximum / MusicClips.Length; float stepRatio = dial.CurrentAngle / stepSize; int closest = Mathf.RoundToInt(stepRatio); float dist = Mathf.Abs(closest - stepRatio) / 0.5f; if (closest == 0) { dist = 1.0f; } else { AudioClip c = MusicClips[closest - 1]; if (c != MusicSource.clip) { int sample = MusicSource.timeSamples; MusicSource.clip = c; MusicSource.timeSamples = sample; } } m_TuningRatio = 1.0f - dist; Tune(); }
public void DialChanged(DialInteractable dial) { m_Renderer.GetPropertyBlock(m_Block); m_Block.SetColor(m_ColorId, Color.Lerp(Color.black, Color.white, dial.CurrentAngle / dial.RotationAngleMaximum)); m_Renderer.SetPropertyBlock(m_Block); }