/// <summary> /// Copies another AudioSpatializer. /// </summary> /// <param name="reference"> The AudioSpatializer to copy. </param> public void Copy(object reference) { var castedReference = (AudioSpatializer)reference; position = castedReference.position; follow = castedReference.follow; getPosition = castedReference.getPosition; spatializeMode = castedReference.spatializeMode; }
/// <summary> /// Updates the position of the AudioSpatializer. /// </summary> public void Spatialize() { if (spatializeMode == SpatializeModes.Dynamic) { if (getPosition != null) { position = getPosition(); } else if (follow != null) { position = follow.position; } else { spatializeMode = SpatializeModes.Static; } for (int i = 0; i < sources.Count; i++) { sources[i].position = position; } } }
/// <summary> /// Initializes the AudioSpatializer with a dynamic delegate. /// </summary> /// <param name="getPosition">The dynamic delegate.</param> public void Initialize(Func <Vector3> getPosition) { this.getPosition = getPosition; position = getPosition(); spatializeMode = SpatializeModes.Dynamic; }
/// <summary> /// Initializes the AudioSpatializer with a dynamic Transform. /// </summary> /// <param name="follow">The dynamic Transform.</param> public void Initialize(Transform follow) { this.follow = follow; position = this.follow.position; spatializeMode = SpatializeModes.Dynamic; }
/// <summary> /// Initializes the AudioSpatializer with a static position. /// </summary> /// <param name="position">The static position.</param> public void Initialize(Vector3 position) { this.position = position; spatializeMode = SpatializeModes.Static; }
/// <summary> /// Updates the position of the AudioSpatializer. /// </summary> public void Spatialize() { if (spatializeMode == SpatializeModes.Dynamic) { if (getPosition != null) position = getPosition(); else if (follow != null) position = follow.position; else spatializeMode = SpatializeModes.Static; for (int i = 0; i < sources.Count; i++) sources[i].position = position; } }
/// <summary> /// Initializes the AudioSpatializer with a dynamic delegate. /// </summary> /// <param name="getPosition">The dynamic delegate.</param> public void Initialize(Func<Vector3> getPosition) { this.getPosition = getPosition; position = getPosition(); spatializeMode = SpatializeModes.Dynamic; }