Assignment for RMIT Mixed Reality in 2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

58 lines
1.2 KiB

//======= Copyright (c) Valve Corporation, All rights reserved. ===============
//
// Purpose: Changes the pitch of this audio source based on a linear mapping
// and a curve
//
//=============================================================================
using UnityEngine;
using System.Collections;
namespace Valve.VR.InteractionSystem
{
//-------------------------------------------------------------------------
public class LinearAudioPitch : MonoBehaviour
{
public LinearMapping linearMapping;
public AnimationCurve pitchCurve;
public float minPitch;
public float maxPitch;
public bool applyContinuously = true;
private AudioSource audioSource;
//-------------------------------------------------
void Awake()
{
if ( audioSource == null )
{
audioSource = GetComponent<AudioSource>();
}
if ( linearMapping == null )
{
linearMapping = GetComponent<LinearMapping>();
}
}
//-------------------------------------------------
void Update()
{
if ( applyContinuously )
{
Apply();
}
}
//-------------------------------------------------
private void Apply()
{
float y = pitchCurve.Evaluate( linearMapping.value );
audioSource.pitch = Mathf.Lerp( minPitch, maxPitch, y );
}
}
}