TalesOfNovariel/Assets/Scripts/AudioHandler.cs

151 lines
3.9 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using UnityEngine;
using UnityEngine.UI;
public class AudioHandler : MonoBehaviour
{
public AudioClip buttonClick;
public AudioClip damage;
public AudioClip explosion;
public AudioClip hit;
public AudioClip hitDagger;
public AudioClip IceHit;
public AudioClip LevelUp;
public AudioClip jump;
AudioSource cameraAudio;
AudioSource playerAudio;
string filepath = "./audiosettings.txt";
// Start is called before the first frame update
void Start()
{
cameraAudio = GameObject.Find("Main Camera").GetComponent<AudioSource>();
playerAudio = GameObject.Find("Player").GetComponent<AudioSource>();
loadAudioSettings();
}
public void playButtonClick()
{
cameraAudio.mute = true;
playerAudio.clip = buttonClick;
playerAudio.Play();
cameraAudio.mute = false;
}
public void playDamage()
{
cameraAudio.mute = true;
playerAudio.clip = damage;
playerAudio.Play();
cameraAudio.mute = false;
}
public void playExplosion()
{
cameraAudio.mute = true;
playerAudio.clip = explosion;
playerAudio.Play();
cameraAudio.mute = false;
}
public void playHit()
{
cameraAudio.mute = true;
playerAudio.clip = hit;
playerAudio.Play();
cameraAudio.mute = false;
}
public void playDaggerHit()
{
cameraAudio.mute = true;
playerAudio.clip = hitDagger;
playerAudio.Play();
cameraAudio.mute = false;
}
public void playIceHit()
{
cameraAudio.mute = true;
playerAudio.clip = IceHit;
playerAudio.Play();
cameraAudio.mute = false;
}
public void playJump()
{
cameraAudio.mute = true;
playerAudio.clip = jump;
playerAudio.Play();
cameraAudio.mute = false;
}
public void playLevelUp()
{
cameraAudio.mute = true;
playerAudio.clip = LevelUp;
playerAudio.Play();
cameraAudio.mute = false;
}
public void changeVolumeMusic()
{
cameraAudio.volume = GameObject.Find("slideMusic").GetComponent<Slider>().value;
int volume = (int)(cameraAudio.volume * 100);
GameObject.Find("txtMusic").GetComponent<Text>().text = "Music (" + volume + "%)";
}
public void changeVolumeEffects()
{
playerAudio.volume = GameObject.Find("slideEffects").GetComponent<Slider>().value;
int volume = (int)(playerAudio.volume * 100);
GameObject.Find("txtEffects").GetComponent<Text>().text = "Effects (" + volume + "%)";
}
public void setSlider()
{
GameObject.Find("slideEffects").GetComponent<Slider>().value = playerAudio.volume;
GameObject.Find("slideMusic").GetComponent<Slider>().value = cameraAudio.volume;
}
public void loadAudioSettings()
{
if (File.Exists(filepath))
{
string[] lines = File.ReadAllLines(filepath);
cameraAudio.volume = float.Parse(lines[0].Split(':')[1]);
playerAudio.volume = float.Parse(lines[1].Split(':')[1]);
}
else
{
StreamWriter sw = File.CreateText(filepath);
sw.WriteLine("Music:0.5");
sw.WriteLine("Effects:0.5");
sw.Flush();
}
}
public void saveAudioSettings()
{
float music = GameObject.Find("slideMusic").GetComponent<Slider>().value;
float effects = GameObject.Find("slideEffects").GetComponent<Slider>().value;
StreamWriter sw;
if (!File.Exists(filepath))
{
sw = File.CreateText(filepath);
}
else
{
sw = new StreamWriter(filepath);
}
sw.WriteLine("Music:"+ music);
sw.WriteLine("Effects:"+ effects);
sw.Flush();
}
}