Listener
(→C# - Listener.cs) |
|||
Line 37: | Line 37: | ||
== C# - Listener.cs == | == C# - Listener.cs == | ||
+ | |||
+ | using UnityEngine; | ||
+ | using System.Collections; | ||
+ | [RequireComponent (typeof(AudioListener))] | ||
+ | |||
+ | public class Listener : MonoBehaviour | ||
+ | { | ||
+ | public float volume = 1; | ||
+ | |||
+ | float loudnessExponent = Mathf.Log(Mathf.Sqrt(10), 2); | ||
+ | float listenerLoudness; | ||
+ | |||
+ | public float Volume | ||
+ | { | ||
+ | get | ||
+ | {return listenerLoudness;} | ||
+ | set | ||
+ | { | ||
+ | volume = value; | ||
+ | listenerLoudness = Mathf.Pow(volume, loudnessExponent); | ||
+ | |||
+ | // volume values outside 0-1 mean nothing in Unity | ||
+ | listenerLoudness = Mathf.Clamp(listenerLoudness, 0, 1); | ||
+ | |||
+ | AudioListener.volume = listenerLoudness; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void Start() | ||
+ | {Volume = volume;} | ||
+ | |||
+ | // Change values in the Editor; get results. | ||
+ | void OnDrawGizmos () | ||
+ | { | ||
+ | Volume = volume; | ||
+ | } | ||
+ | } |
Revision as of 01:32, 19 May 2009
Author: Jessy
Contents |
Description
This is a script that replaces the Volume property of the Audio Listener. I feel that its behaves more intuitively than that of the Audio Listener itself. See the page for my Audio script for extensive details. :-D
Instructions
The Volume parameter performs the task that the similarly-named parameter of an Audio Listener was intended to perform.
JavaScript - Listener.js
<javascript>@script RequireComponent(AudioListener)
var volume : float = 1;
private var loudnessExponent = Mathf.Log(Mathf.Sqrt(10), 2);
function Volume (newVolume) : float { volume = newVolume; var listenerLoudness = Mathf.Pow(volume, loudnessExponent);
// volume values outside 0-1 mean nothing in Unity listenerLoudness = Mathf.Clamp(listenerLoudness, 0, 1);
AudioListener.volume = listenerLoudness; return listenerLoudness; }
function Start() {Volume(volume);}
// Change values in the Editor; get results. function OnDrawGizmos () {Volume(volume);}</javascript>
C# - Listener.cs
using UnityEngine; using System.Collections; [RequireComponent (typeof(AudioListener))]
public class Listener : MonoBehaviour { public float volume = 1;
float loudnessExponent = Mathf.Log(Mathf.Sqrt(10), 2); float listenerLoudness;
public float Volume { get {return listenerLoudness;} set { volume = value; listenerLoudness = Mathf.Pow(volume, loudnessExponent);
// volume values outside 0-1 mean nothing in Unity listenerLoudness = Mathf.Clamp(listenerLoudness, 0, 1);
AudioListener.volume = listenerLoudness; } }
void Start() {Volume = volume;}
// Change values in the Editor; get results. void OnDrawGizmos () { Volume = volume; } }