private void SaveSOAs(TimelineLiteAsset data) { string path = EditorUtility.SaveFilePanelInProject("Save", data.name + "_SO", "asset", "Null"); if (!string.IsNullOrEmpty(path)) { data.previousPath = path.Substring(0, path.LastIndexOf(".")); EditorUtility.SetDirty(data); TimelineLiteSO so = AssetDatabase.LoadAssetAtPath <TimelineLiteSO>(data.previousPath + ".asset"); if (so != null) { so.TimelineLiteObjectData = data.Extract(); EditorUtility.SetDirty(so); } else { so = ScriptableObject.CreateInstance(data.TargetSOType) as TimelineLiteSO; so.TimelineLiteObjectData = data.Extract(); AssetDatabase.CreateAsset(so, data.previousPath + ".asset"); } AssetDatabase.SaveAssets(); } }
private void SaveSO(TimelineLiteAsset data) { TimelineLiteSO so = AssetDatabase.LoadAssetAtPath <TimelineLiteSO>(data.previousPath + ".asset"); if (so == null) { SaveSOAs(data); } else { so.TimelineLiteObjectData = data.Extract(); EditorUtility.SetDirty(so); AssetDatabase.SaveAssets(); } }
/// <summary> SO </summary> private void SaveSOSelectionAs(IList <int> _selection) { string path = EditorUtility.OpenFolderPanel("批量另存为", Application.dataPath, ""); if (!string.IsNullOrEmpty(path)) { path = path.Replace(Application.dataPath, "Assets"); foreach (var id in _selection) { TimelineLiteAssetTreeViewItem item = projecListTreeView.FindItem(id) as TimelineLiteAssetTreeViewItem; if (item == null) { continue; } TimelineLiteAsset data = item.UserData; data.previousPath = path + "/" + data.name + "_SO"; EditorUtility.SetDirty(data); TimelineLiteSO so = AssetDatabase.LoadAssetAtPath <TimelineLiteSO>(data.previousPath + ".asset"); if (so != null) { so.TimelineLiteObjectData = data.Extract(); EditorUtility.SetDirty(so); } else { so = ScriptableObject.CreateInstance(data.TargetSOType) as TimelineLiteSO; so.TimelineLiteObjectData = data.Extract(); AssetDatabase.CreateAsset(so, data.previousPath + ".asset"); } } AssetDatabase.SaveAssets(); } }