Files
FueraDeEscala/Assets/Game Kit Controller/Scripts/Weapons/Projectiles/audioClipBip.cs
Robii Aragon 779f2c8b20 add ckg
plantilla base para movimiento básico
2026-02-05 05:07:55 -08:00

146 lines
2.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using GameKitController.Audio;
using UnityEngine;
public class audioClipBip : MonoBehaviour
{
[Header ("Main Settings")]
[Space]
public float playTime;
public float playRate;
public float increasePitchSpeed;
public float increasePlayRateSpeed;
public bool playBipAtStart = true;
public bool playBipOnEnable;
public AudioClip soundClip;
public AudioElement soundClipAudioElement;
[Space]
[Header ("Debug")]
[Space]
public bool showDebugPrint;
public float lastTimePlayed;
public float totalTimePlayed;
public bool audioPlayed;
public bool bipActivated;
public float originalPlayRate;
AudioSource mainAudioSource;
bool initialized;
void Start ()
{
if (playBipAtStart) {
intializeBip ();
}
}
void OnEnable ()
{
if (playBipOnEnable) {
intializeBip ();
}
}
void intializeBip ()
{
if (mainAudioSource == null) {
mainAudioSource = GetComponent<AudioSource> ();
}
if (mainAudioSource)
soundClipAudioElement.audioSource = mainAudioSource;
if (soundClip)
soundClipAudioElement.clip = soundClip;
if (originalPlayRate == 0) {
originalPlayRate = playRate;
}
totalTimePlayed = Time.time;
resetBip ();
if (showDebugPrint) {
print ("Initialize bip");
}
initialized = true;
}
void FixedUpdate ()
{
if (!audioPlayed && (bipActivated || playBipAtStart || playBipOnEnable)) {
if (Time.time > lastTimePlayed + playRate) {
mainAudioSource.pitch += increasePitchSpeed;
AudioPlayer.PlayOneShot (soundClipAudioElement, gameObject);
lastTimePlayed = Time.time;
playRate -= increasePlayRateSpeed;
if (playRate <= 0) {
playRate = 0.1f;
}
if (Time.time > (totalTimePlayed + playTime)) {
audioPlayed = true;
}
}
}
}
public void increasePlayTime (float extraTime)
{
if (!initialized || !playBipOnEnable) {
intializeBip ();
}
totalTimePlayed = Time.time;
playTime = extraTime;
bipActivated = true;
if (showDebugPrint) {
print ("Activate bip");
}
}
public void disableBip ()
{
bipActivated = false;
mainAudioSource.pitch = 1;
lastTimePlayed = 0;
playRate = originalPlayRate;
}
void resetBip ()
{
lastTimePlayed = 0;
playRate = originalPlayRate;
totalTimePlayed = Time.time;
audioPlayed = false;
bipActivated = false;
if (mainAudioSource != null) {
mainAudioSource.pitch = 1;
}
}
}