#if UNITY_EDITOR namespace MusicCubeEditor { using PhxhSDK; using System; using System.Collections.Generic; using System.IO; using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine; using UnityEngine.SceneManagement; public class MusicCubeEditorToolManager :Singlenton { const string MusicCubeEditorScene = "Assets/musictest.unity"; public string nowPlayMusicName; public void OpenTestScene() { var scene = SceneManager.GetActiveScene(); if (scene.path == MusicCubeEditorScene) { return; } else { EditorSceneManager.OpenScene(MusicCubeEditorScene); } } public void ChangeDataToJson(List list) { OneMusicData data = ConvertListarrayToOneMusicData(list); data.name = nowPlayMusicName; SaveConfig(data); } public void SetNowMusicName(string name) { nowPlayMusicName = name; } public OneMusicData ConvertListarrayToOneMusicData(List list) { OneMusicData data = new OneMusicData(list, nowPlayMusicName); return data; } public List ConvertOneMusicDataToListArray(OneMusicData oneMusicData) { Listtemp=new List(); for (int i = 0; i < oneMusicData.frameDatas.Count; i++) { float[] temp1 = new float[16]; for (int j = 0; j < oneMusicData.frameDatas[i].ColData.Count; j++) { temp1[j] = oneMusicData.frameDatas[i].ColData[j]; } temp.Add(temp1); } return temp; } public void SaveConfig(OneMusicData saveData) { // 保存timeline //var director = _cmp.gameObject.GetComponent(); //var playAsset = director.playableAsset as TimelineAsset; // 保存json到本地 { var json = JsonUtility.ToJson(saveData); var savePath = "Assets/Config/UISomeAbout/MainPanelMusicCube/"; var saveName = "music_"+saveData.name + ".json"; var fullPath = savePath + "/" + saveName; var realPath = Application.dataPath + fullPath.Substring(6); if (File.Exists(realPath)) { //if (VersionControlUtils.IsPathVersioned(fullPath)) //{ // Provider.Checkout(fullPath, CheckoutMode.Both).Wait(); //} File.Delete(realPath); } File.WriteAllText(realPath, json); Debug.Log("json保存成功:" + fullPath); } AssetDatabase.Refresh(); // 弹出对话框提示 EditorUtility.DisplayDialog("提示", "保存成功", "确定"); } public OneMusicData LoadConfig(string musicName) { // 检查json var savePath = "Assets/Config/UISomeAbout/MainPanelMusicCube/"; var saveName = "music_" + musicName + ".json"; var realPath = Application.dataPath + "/Config/UISomeAbout/MainPanelMusicCube/" + saveName; // 先判断存不存在 if (File.Exists(realPath)) { var jsonStr = File.ReadAllText(realPath); return JsonUtility.FromJson(jsonStr); } else { // 不存在,进行默认设置 EditorUtility.DisplayDialog("提示", "文件不存在,请先录制", "确定"); return new OneMusicData(); } } public class OneMusicData { public string name; public List frameDatas = new List(); public OneMusicData() { name = "fff"; for (int i = 0; i < 60; i++) { frameDatas.Add(new OneFrameData()); } } public OneMusicData(List list, string musicName) { name = musicName; for (int i = 0; i < list.Count; i++) { frameDatas.Add(new OneFrameData(list[i])); } } } [Serializable] public class OneFrameData { public List ColData = new List(); public OneFrameData() { for (int i = 0; i < 16; i++) { ColData.Add(0); } } public OneFrameData(float[] s) { for (int i = 0; i < s.Length; i++) { ColData.Add(Convert.ToInt16(s[i])); } } } } } #endif