You've already forked Dpr-ScriptsOnly
mirror of
https://github.com/izzy2lost/Dpr-ScriptsOnly.git
synced 2026-03-10 11:49:05 -07:00
102 lines
2.3 KiB
C#
102 lines
2.3 KiB
C#
using UnityEngine;
|
|
|
|
namespace SmartPoint.Components
|
|
{
|
|
public class AudioChannel
|
|
{
|
|
private AudioSource _source;
|
|
private float _volume;
|
|
private int _type;
|
|
private int _status;
|
|
private float _duration;
|
|
private float _elapsedTime;
|
|
|
|
public AudioChannel(int type, AudioSource source)
|
|
{
|
|
_volume = 1.0f;
|
|
_type = type;
|
|
_source = source;
|
|
ResetVolume();
|
|
}
|
|
|
|
public void ResetVolume()
|
|
{
|
|
float volume;
|
|
switch (_type)
|
|
{
|
|
case 3:
|
|
volume = AudioPlayer.GlobalVoiceVolume;
|
|
break;
|
|
case 2:
|
|
volume = AudioPlayer.GlobalEffectVolume;
|
|
break;
|
|
case 1:
|
|
volume = AudioPlayer.GlobalStreamVolume;
|
|
break;
|
|
default:
|
|
volume = 0.0f;
|
|
break;
|
|
}
|
|
_source.volume = volume * _volume;
|
|
}
|
|
|
|
public AudioClip Clip
|
|
{
|
|
get => _source ? _source.clip : null;
|
|
set
|
|
{
|
|
if (_source)
|
|
_source.clip = value;
|
|
}
|
|
}
|
|
|
|
public float Time
|
|
{
|
|
get => _source ? _source.time : 0.0f;
|
|
set
|
|
{
|
|
if (_source)
|
|
_source.time = value;
|
|
}
|
|
}
|
|
|
|
public float Volume
|
|
{
|
|
get => _volume;
|
|
set
|
|
{
|
|
_volume = value;
|
|
ResetVolume();
|
|
}
|
|
}
|
|
|
|
public bool IsPlaying => _source && _source.isPlaying;
|
|
|
|
public void Play() => _status = 2;
|
|
|
|
public void Stop() => _status = 7;
|
|
|
|
public void Pause() => _status = 4;
|
|
|
|
public AudioSource Source => _source;
|
|
|
|
public int Status
|
|
{
|
|
get => _status;
|
|
set => _status = value;
|
|
}
|
|
|
|
public float Duration
|
|
{
|
|
get => _duration;
|
|
set => _duration = value;
|
|
}
|
|
|
|
public float ElapsedTime
|
|
{
|
|
get => _elapsedTime;
|
|
set => _elapsedTime = value;
|
|
}
|
|
}
|
|
}
|