Example #1
0
        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();
            }
        }
Example #2
0
        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();
            }
        }
Example #3
0
        /// <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();
            }
        }