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);
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |