46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System.Collections; | |||
|  | using System.Collections.Generic; | |||
|  | using UnityEngine; | |||
|  | 
 | |||
|  | namespace PolygonArsenal | |||
|  | { | |||
|  |     public class PolygonSoundSpawn : MonoBehaviour | |||
|  |     { | |||
|  | 
 | |||
|  |         public GameObject prefabSound; | |||
|  | 
 | |||
|  |         public bool destroyWhenDone = true; | |||
|  |         public bool soundPrefabIsChild = false; | |||
|  |         [Range(0.01f, 10f)] | |||
|  |         public float pitchRandomMultiplier = 1f; | |||
|  | 
 | |||
|  |         // Use this for initialization | |||
|  |         void Start() | |||
|  |         { | |||
|  |             //Spawn the sound object | |||
|  |             GameObject m_Sound = Instantiate(prefabSound, transform.position, Quaternion.identity); | |||
|  |             AudioSource m_Source = m_Sound.GetComponent<AudioSource>(); | |||
|  | 
 | |||
|  |             //Attach object to parent if true | |||
|  |             if (soundPrefabIsChild) | |||
|  |                 m_Sound.transform.SetParent(transform); | |||
|  | 
 | |||
|  |             //Multiply pitch | |||
|  |             if (pitchRandomMultiplier != 1) | |||
|  |             { | |||
|  |                 if (Random.value < .5) | |||
|  |                     m_Source.pitch *= Random.Range(1 / pitchRandomMultiplier, 1); | |||
|  |                 else | |||
|  |                     m_Source.pitch *= Random.Range(1, pitchRandomMultiplier); | |||
|  |             } | |||
|  | 
 | |||
|  |             //Set lifespan if true | |||
|  |             if (destroyWhenDone) | |||
|  |             { | |||
|  |                 float life = m_Source.clip.length / m_Source.pitch; | |||
|  |                 Destroy(m_Sound, life); | |||
|  |             } | |||
|  |         } | |||
|  |     } | |||
|  | } |