|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections;
|
|
|
|
|
|
using Qoo.Application;
|
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x0200018C RID: 396
|
|
|
|
|
|
public class SoundVoice : MonoBehaviour
|
|
|
|
|
|
{
|
|
|
|
|
|
// Token: 0x1700017B RID: 379
|
|
|
|
|
|
// (get) Token: 0x06000B48 RID: 2888 RVA: 0x00030778 File Offset: 0x0002E978
|
|
|
|
|
|
// (set) Token: 0x06000B49 RID: 2889 RVA: 0x00030780 File Offset: 0x0002E980
|
|
|
|
|
|
public string Name
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return this.sourceName;
|
|
|
|
|
|
}
|
|
|
|
|
|
private set
|
|
|
|
|
|
{
|
|
|
|
|
|
this.sourceName = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x1700017C RID: 380
|
|
|
|
|
|
// (get) Token: 0x06000B4A RID: 2890 RVA: 0x0003078C File Offset: 0x0002E98C
|
|
|
|
|
|
// (set) Token: 0x06000B4B RID: 2891 RVA: 0x00030794 File Offset: 0x0002E994
|
|
|
|
|
|
public bool IsPause
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return this.isPause;
|
|
|
|
|
|
}
|
|
|
|
|
|
private set
|
|
|
|
|
|
{
|
|
|
|
|
|
this.isPause = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x1700017D RID: 381
|
|
|
|
|
|
// (get) Token: 0x06000B4C RID: 2892 RVA: 0x000307A0 File Offset: 0x0002E9A0
|
|
|
|
|
|
public bool IsPlay
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return this.voice.isPlaying || this.isStart;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x1700017E RID: 382
|
|
|
|
|
|
// (get) Token: 0x06000B4D RID: 2893 RVA: 0x000307BC File Offset: 0x0002E9BC
|
|
|
|
|
|
// (set) Token: 0x06000B4E RID: 2894 RVA: 0x000307C4 File Offset: 0x0002E9C4
|
|
|
|
|
|
public int FadeInTime
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return this.timeIn;
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
this.timeIn = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x1700017F RID: 383
|
|
|
|
|
|
// (get) Token: 0x06000B4F RID: 2895 RVA: 0x000307D0 File Offset: 0x0002E9D0
|
|
|
|
|
|
// (set) Token: 0x06000B50 RID: 2896 RVA: 0x000307D8 File Offset: 0x0002E9D8
|
|
|
|
|
|
public int FadeOutTime
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return this.timeOut;
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
this.timeOut = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x17000180 RID: 384
|
|
|
|
|
|
// (get) Token: 0x06000B51 RID: 2897 RVA: 0x000307E4 File Offset: 0x0002E9E4
|
|
|
|
|
|
// (set) Token: 0x06000B52 RID: 2898 RVA: 0x000307EC File Offset: 0x0002E9EC
|
|
|
|
|
|
public float Volume
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return this.volume;
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
this.volume = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x17000181 RID: 385
|
|
|
|
|
|
// (get) Token: 0x06000B53 RID: 2899 RVA: 0x000307F8 File Offset: 0x0002E9F8
|
|
|
|
|
|
public float OutVolume
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return this.voice.volume;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x17000182 RID: 386
|
|
|
|
|
|
// (get) Token: 0x06000B54 RID: 2900 RVA: 0x00030808 File Offset: 0x0002EA08
|
|
|
|
|
|
public bool IsFade
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return this.isFadeIn || this.isFadeOut;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x17000183 RID: 387
|
|
|
|
|
|
// (get) Token: 0x06000B55 RID: 2901 RVA: 0x00030820 File Offset: 0x0002EA20
|
|
|
|
|
|
// (set) Token: 0x06000B56 RID: 2902 RVA: 0x00030830 File Offset: 0x0002EA30
|
|
|
|
|
|
public bool Loop
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return this.voice.loop;
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
this.voice.loop = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x17000184 RID: 388
|
|
|
|
|
|
// (get) Token: 0x06000B57 RID: 2903 RVA: 0x00030840 File Offset: 0x0002EA40
|
|
|
|
|
|
public bool IsSource
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return this.voice.clip != null;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x06000B58 RID: 2904 RVA: 0x00030854 File Offset: 0x0002EA54
|
|
|
|
|
|
public static SoundVoice CreateObject(GameObject parent, string name)
|
|
|
|
|
|
{
|
|
|
|
|
|
return new GameObject("SoundVoice." + name)
|
|
|
|
|
|
{
|
|
|
|
|
|
transform =
|
|
|
|
|
|
{
|
|
|
|
|
|
parent = parent.transform
|
|
|
|
|
|
}
|
|
|
|
|
|
}.gameObject.AddComponent<SoundVoice>();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x06000B59 RID: 2905 RVA: 0x00030890 File Offset: 0x0002EA90
|
|
|
|
|
|
private void Awake()
|
|
|
|
|
|
{
|
|
|
|
|
|
this.voice = base.gameObject.AddComponent<AudioSource>();
|
|
|
|
|
|
this.voice.panLevel = 0f;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x06000B5A RID: 2906 RVA: 0x000308B4 File Offset: 0x0002EAB4
|
|
|
|
|
|
private void Update()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (this.m_data != null && this.voice.clip == null && this.m_data.Data != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.voice.clip = this.m_data.Data;
|
|
|
|
|
|
this.voice.panLevel = 0f;
|
|
|
|
|
|
this.m_data = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (this.isStart && this.voice.clip != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.Play();
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!this.IsFade)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.voice.volume = this.Volume;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x06000B5B RID: 2907 RVA: 0x00030968 File Offset: 0x0002EB68
|
|
|
|
|
|
public bool SetSource(string category, string name_)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.Name = name_;
|
|
|
|
|
|
this.isStart = false;
|
|
|
|
|
|
this.isFadeOut = false;
|
|
|
|
|
|
this.isFadeIn = false;
|
|
|
|
|
|
if (this.voice.clip != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.voice.Stop();
|
|
|
|
|
|
Resources.UnloadAsset(this.voice.clip);
|
|
|
|
|
|
}
|
|
|
|
|
|
this.voice.clip = null;
|
|
|
|
|
|
this.voice.clip = SoundData.Load(category, name_);
|
|
|
|
|
|
this.voice.panLevel = 0f;
|
|
|
|
|
|
return this.voice.clip != null;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x06000B5C RID: 2908 RVA: 0x00030A04 File Offset: 0x0002EC04
|
|
|
|
|
|
public void Play(SoundData data, float fVol = 1f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (data != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.voice.PlayOneShot(data.Data, fVol);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x06000B5D RID: 2909 RVA: 0x00030A20 File Offset: 0x0002EC20
|
|
|
|
|
|
public void Play()
|
|
|
|
|
|
{
|
|
|
|
|
|
this.isStart = false;
|
|
|
|
|
|
if (this.voice.clip == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.isStart = true;
|
|
|
|
|
|
this.isFadeOut = false;
|
|
|
|
|
|
this.isFadeIn = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
this.isFadeOut = false;
|
|
|
|
|
|
this.voice.Play();
|
|
|
|
|
|
if (this.FadeInTime > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.isFadeIn = true;
|
|
|
|
|
|
base.StartCoroutine(this.FadeIn(0f, this.Volume));
|
|
|
|
|
|
}
|
|
|
|
|
|
this.IsPause = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x06000B5E RID: 2910 RVA: 0x00030AA8 File Offset: 0x0002ECA8
|
|
|
|
|
|
public void Stop()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (this.isFadeOut && this.FadeOutTime > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.isFadeOut = true;
|
|
|
|
|
|
this.isStart = false;
|
|
|
|
|
|
this.isFadeIn = false;
|
|
|
|
|
|
base.StartCoroutine(this.FadeOut(this.Volume, 0f));
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
this.isFadeOut = false;
|
|
|
|
|
|
this.isFadeIn = false;
|
|
|
|
|
|
this.isStart = false;
|
|
|
|
|
|
this.voice.Stop();
|
|
|
|
|
|
Resources.UnloadAsset(this.voice.clip);
|
|
|
|
|
|
this.voice.clip = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x06000B5F RID: 2911 RVA: 0x00030B3C File Offset: 0x0002ED3C
|
|
|
|
|
|
public void Pause(bool bPause)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (this.IsSource)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (bPause && this.IsPlay)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.voice.Pause();
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (!bPause && this.IsPause)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.voice.Play();
|
|
|
|
|
|
}
|
|
|
|
|
|
this.IsPause = bPause;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x06000B60 RID: 2912 RVA: 0x00030B98 File Offset: 0x0002ED98
|
|
|
|
|
|
private IEnumerator FadeOut(float volIn, float volOut)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!this.isFadeOut)
|
|
|
|
|
|
{
|
|
|
|
|
|
yield break;
|
|
|
|
|
|
}
|
|
|
|
|
|
int start = App.GetTimeMilli();
|
|
|
|
|
|
int end = start + this.FadeInTime;
|
|
|
|
|
|
for (int now = start; now < end; now = App.GetTimeMilli())
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!this.isFadeOut)
|
|
|
|
|
|
{
|
|
|
|
|
|
yield break;
|
|
|
|
|
|
}
|
|
|
|
|
|
this.voice.volume = Mathf.Lerp(volOut, volIn, (float)(now / end));
|
|
|
|
|
|
yield return 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (this.isFadeOut)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.voice.volume = volOut;
|
|
|
|
|
|
if (volOut == 0f)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.voice.Stop();
|
|
|
|
|
|
Resources.UnloadAsset(this.voice.clip);
|
|
|
|
|
|
this.voice.clip = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
this.isFadeOut = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
yield break;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x06000B61 RID: 2913 RVA: 0x00030BD0 File Offset: 0x0002EDD0
|
|
|
|
|
|
private IEnumerator FadeIn(float volIn, float volOut)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!this.isFadeIn)
|
|
|
|
|
|
{
|
|
|
|
|
|
yield break;
|
|
|
|
|
|
}
|
|
|
|
|
|
int start = App.GetTimeMilli();
|
|
|
|
|
|
int end = start + this.FadeInTime;
|
|
|
|
|
|
for (int now = start; now < end; now = App.GetTimeMilli())
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!this.isFadeIn)
|
|
|
|
|
|
{
|
|
|
|
|
|
yield break;
|
|
|
|
|
|
}
|
|
|
|
|
|
this.voice.volume = Mathf.Lerp(volOut, volIn, (float)(now / end));
|
|
|
|
|
|
yield return 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (this.isFadeIn)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.voice.volume = volOut;
|
|
|
|
|
|
this.isFadeIn = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
yield break;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x040008EC RID: 2284
|
|
|
|
|
|
private AudioSource voice;
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x040008ED RID: 2285
|
|
|
|
|
|
private SoundData m_data;
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x040008EE RID: 2286
|
|
|
|
|
|
private bool isPause;
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x040008EF RID: 2287
|
|
|
|
|
|
private bool isFadeIn;
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x040008F0 RID: 2288
|
|
|
|
|
|
private bool isFadeOut;
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x040008F1 RID: 2289
|
|
|
|
|
|
private string sourceName;
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x040008F2 RID: 2290
|
|
|
|
|
|
private int timeIn = 1000;
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x040008F3 RID: 2291
|
|
|
|
|
|
private int timeOut = 1000;
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x040008F4 RID: 2292
|
|
|
|
|
|
private float volume = 1f;
|
|
|
|
|
|
|
|
|
|
|
|
// Token: 0x040008F5 RID: 2293
|
|
|
|
|
|
private bool isStart;
|
|
|
|
|
|
}
|