static void SaveDatabase(LipsyncSequenceDatabase database, string path) { path += "SequenceDatabase.asset"; LipsyncSequenceDatabase exisitingDatabase = AssetDatabase.LoadMainAssetAtPath(path) as LipsyncSequenceDatabase; if (exisitingDatabase != null) { //if there is data we want to save the user might have altered inside the Unity editor we do it here foreach (LipsyncSequence existingSequence in exisitingDatabase.sequences) { foreach (LipsyncSequence sequence in database.sequences) { if (sequence.name == existingSequence.name) { sequence.mood = existingSequence.mood; } } } EditorUtility.CopySerialized(database, exisitingDatabase); AssetDatabase.SaveAssets(); } else { AssetDatabase.CreateAsset(database, path); } }
static void SaveDatabase(LipsyncSequenceDatabase database, string path) { path += "SequenceDatabase.asset"; LipsyncSequenceDatabase exisitingDatabase = AssetDatabase.LoadMainAssetAtPath (path) as LipsyncSequenceDatabase; if (exisitingDatabase != null) { //if there is data we want to save the user might have altered inside the Unity editor we do it here foreach(LipsyncSequence existingSequence in exisitingDatabase.sequences) { foreach(LipsyncSequence sequence in database.sequences) { if(sequence.name == existingSequence.name) { sequence.mood = existingSequence.mood; } } } EditorUtility.CopySerialized (database, exisitingDatabase); AssetDatabase.SaveAssets (); } else AssetDatabase.CreateAsset (database, path); }
public static LipsyncSequenceDatabase BuildDatabase(DirectoryInfo directory) { LipsyncSequenceDatabase database = ScriptableObject.CreateInstance <LipsyncSequenceDatabase>(); DirectoryWalkCallback callback = filePath => { string[] lines = File.ReadAllLines(filePath.FullName); string name = filePath.Name.Replace(LipsyncAutomation.fileEnding, ""); LipsyncSequence sequence = LipsyncSequenceFactory.BuildSequence(lines, name); database.sequences.Add(sequence); }; LipsyncFileUtility.WalkDirectoryRecursively(directory, ".dat", callback); return(database); }
public static void BuildSequenceDatabases(string dataPath, string outputPath) { string projectPath = Application.dataPath.Replace("Assets", ""); dataPath = projectPath + dataPath; DirectoryInfo dataFolder = new DirectoryInfo(dataPath); DirectoryInfo outputFolder = new DirectoryInfo(outputPath); DirectoryInfo[] sceneDataFolders = dataFolder.GetDirectories(); foreach (DirectoryInfo sceneDataFolder in sceneDataFolders) { Debug.Log(sceneDataFolder.FullName); LipsyncSequenceDatabase database = LipsyncSequenceDatabaseFactory.BuildDatabase(sceneDataFolder); SaveDatabase(database, outputPath + "/" + sceneDataFolder.Name); } }