// using System.Collections; // using System.Collections.Generic; // using CriWare; // //using CriWare.Assets; // using Cysharp.Threading.Tasks; // using Framework; // using PhxhSDK; // using UnityEditor; // using UnityEngine; // // public class AudioEditorMgr : Editor // { // private Dictionary _audioDic; // private List _cacheAudios; // private List _playingAudios; // private List _toBeRemoved; // // private static AudioEditorMgr _instance; // public static AudioEditorMgr Instance // { // get // { // if (_instance == null) // { // _instance = new AudioEditorMgr(); // _instance.Init(); // } // // return _instance; // } // } // // public CriAtomAcbAsset acbAsset; // // private void Init() // { // _cacheAudios = new List(); // _playingAudios = new List(); // _toBeRemoved = new List(); // _audioDic = new Dictionary(); // // //EditorAudio.LoadAcb(); // } // // public void LoadAudios(int playerId) // { // // } // // public void Release() // { // _instance = null; // } // // public void LogicUpdate() // { // for (int i = 0; i < _playingAudios.Count; i++) // { // var id = _playingAudios[i]; // if (_audioDic.TryGetValue(id, out var audio)) // { // if (audio.CriAtom) // { // if (audio.IsStopped()) // { // _toBeRemoved.Add(id); // } // else // { // audio.Update(); // } // } // } // // } // // for (int i = 0; i < _toBeRemoved.Count; i++) // { // if (_audioDic.TryGetValue(_toBeRemoved[i], out var audio)) // { // _playingAudios.Remove(_toBeRemoved[i]); // _cacheAudios.Add(_toBeRemoved[i]); // //_audioDic.Remove(_toBeRemoved[i]); // } // // } // } // } // // public class EditorAudio // { // public int ID => _id; // public CriAtomSourceForAsset CriAtom => _criAtom; // public int PlayerID => _playerID; // public GameObject BindObj => _bindObj; // // public static int AudioCount; // public static CriAtomAcbAsset AcbAsset; // private static bool _isLoading; // // public enum PlayState // { // Playing, // Pause, // Stop // } // // private int _id; // private string _audioName; // private CriAtomSourceForAsset _criAtom; // private PlayState _state; // private int _playerID; // private GameObject _bindObj; // // // public EditorAudio(string audioName, int playerID, GameObject go, bool is3D = false, bool loop = false) // { // Init(audioName, playerID, go); // CreateAudioSource(is3D, loop); // } // // private static UniTask CheckIsLoading() // { // if (_isLoading) // { // UniTask.NextFrame(); // } // // return default; // } // // public void Play() // { // _criAtom.Play(); // _state = PlayState.Playing; // } // // public void Play(string cueName) // { // _criAtom.Play(cueName); // _state = PlayState.Playing; // } // // public void Stop() // { // _criAtom.Stop(); // _state = PlayState.Stop; // } // // public void Pause() // { // if (IsPlaying()) // { // _criAtom.Pause(true); // _state = PlayState.Pause; // } // // } // // public void Resume() // { // if (IsPause()) // { // _criAtom.Pause(false); // _state = PlayState.Playing; // } // } // // public bool IsPlaying() // { // return _state == PlayState.Playing; // } // // public bool IsStopped() // { // return _state == PlayState.Stop; // } // // public bool IsPause() // { // return _state == PlayState.Pause; // } // // public void Update() // { // if (_criAtom.status == CriAtomSourceBase.Status.Stop) // { // _state = PlayState.Stop; // } // } // // public void Init(string audioName, int playerID, GameObject go) // { // _id = AudioCount++; // _audioName = audioName; // _playerID = playerID; // _bindObj = go; // } // // private async void CreateAudioSource(bool is3D, bool loop = false) // { // await CheckIsLoading(); // var criAtom = _bindObj.GetComponent(); // if (criAtom) // { // _criAtom = criAtom; // } // else // { // _criAtom = _bindObj.AddComponent(); // } // _criAtom.volume = 1f; // _criAtom.use3dPositioning = is3D; // _criAtom.loop = loop; // } // }