Listener

From Unify Community Wiki
(Difference between revisions)
Jump to: navigation, search
(C# - Listener.cs)
(JavaScript - Listener.js)
Line 11: Line 11:
  
 
== JavaScript - Listener.js ==
 
== JavaScript - Listener.js ==
Use ''Listener.Volume(newVolume);'' to assign the '''volume''' parameter a value of ''newVolume'', instead of assigning a value to '''volume''' directly.
+
Use ''Listener.Volume(newVolume);'' to assign the '''volume''' parameter a value of ''newVolume'', instead of assigning a value to '''volume''' directly. (You may find the way this is handled via C# to be more intuitive.)
 
<javascript>@script RequireComponent(AudioListener)
 
<javascript>@script RequireComponent(AudioListener)
  

Revision as of 02:19, 19 May 2009

Author: Jessy

Contents

Description

This is a script that replaces the Volume property of the Audio Listener. It behaves more intuitively than that of the Audio Listener itself. See the page for my Audio script for extensive details.  :-D

Instructions

The Volume property performs the task that the similarly-named parameter of an Audio Listener was intended to perform. Change its value in the Editor for immediate results, or use the methods described in the JavaScript or C# sections.

JavaScript - Listener.js

Use Listener.Volume(newVolume); to assign the volume parameter a value of newVolume, instead of assigning a value to volume directly. (You may find the way this is handled via C# to be more intuitive.) <javascript>@script RequireComponent(AudioListener)

var volume : float = 1;

private var loudnessExponent = Mathf.Log(Mathf.Sqrt(10), 2);

function Volume (newVolume) { 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; }

function Start() {Volume(volume);}

// Change values in the Editor; get results. function OnDrawGizmos () {Volume(volume);}</javascript>

C# - Listener.cs

Use Listener.Volume = newVolume; to assign the volume parameter a value of newVolume, instead of assigning a value to volume directly. <csharp>using UnityEngine; using System.Collections; [RequireComponent (typeof(AudioListener))]

public class Listener : MonoBehaviour { public float volume = 1;

float loudnessExponent = Mathf.Log(Mathf.Sqrt(10), 2);

public float Volume { // no need for a getter; use AudioListener.volume instead

set { volume = value; float 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;} }</csharp >

Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Toolbox