[TASK] Working on duck-catching minigame
This commit is contained in:
45
Assets/Polygon Arsenal/Scripts/PolygonSoundSpawn.cs
Normal file
45
Assets/Polygon Arsenal/Scripts/PolygonSoundSpawn.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user