public static void BrowseAndLoadDynamicsSetup(GameObject rootObject) { if (EditorApplication.isPlaying) { Debug.LogError("再生モードを止めてください。"); return; } var fileFilters = new string[] { "CSVファイル", "csv", "テキストファイル", "txt" }; var path = EditorUtility.OpenFilePanelWithFilters( "ダイナミクス情報を読み込む", "", fileFilters); if (path.Length > 0) { var sourceText = FileUtil.ReadAllText(path); if (sourceText.Length > 0) { // Record undo objects so that the changes will be saved var undoObjects = new List <Object> { rootObject }; var springManager = rootObject.GetComponent <SpringManager>(); if (springManager != null) { undoObjects.Add(springManager); } Undo.RecordObjects(undoObjects.ToArray(), "Load Dynamics"); SpringBoneSerialization.SetupFromRecordText(rootObject, rootObject, sourceText); AssetDatabase.Refresh(); Debug.Log("読み込みました: " + path); } } }
public static void BrowseAndSaveDynamicsSetup(SpringManager springManager) { var path = EditorUtility.SaveFilePanel( "ダイナミクス情報を保存", "", "", "csv"); if (path.Length > 0) { var sourceText = SpringBoneSerialization.BuildDynamicsSetupString(springManager.gameObject); if (FileUtil.WriteAllText(path, sourceText)) { AssetDatabase.Refresh(); Debug.Log("保存しました: " + path); } } }