private void CreateAsset()
 {
     try
     {
         string scriptableObjectPath;
         if (dataManager.LoadWindowData().DialogueToggle)
         {
             scriptableObjectPath = Path.Combine(Path.GetDirectoryName(PhonemeExtractor_Main.pathToConvertedFile), PhonemeExtractor_Main.audioClip.name + ".asset");
         }
         else
         {
             scriptableObjectPath = Path.Combine(dataManager.LoadWindowData().DialogueDataSavingPath, PhonemeExtractor_Main.audioClip.name + ".asset");
         }
         VisemeScriptableObject newScriptableObject = ScriptableObject.CreateInstance <VisemeScriptableObject>();
         newScriptableObject.dialogueAudio         = PhonemeExtractor_Main.audioClip;
         newScriptableObject.dialogueTranscription = PhonemeExtractor_Main.textTranscripton;
         newScriptableObject.generatedVisemes      = visemes;
         AssetDatabase.CreateAsset(newScriptableObject, scriptableObjectPath);
         AssetDatabase.SaveAssets();
         for (int i = 0; i < visemes.Count; i++)
         {
             visemes[i].name = visemes[i].GetType().ToString().Split('.')[1];
             //visemes[i].hideFlags = HideFlags.HideInHierarchy;
             if (visemes[i] is Viseme_Mixed)
             {
                 AssetDatabase.AddObjectToAsset(visemes[i], scriptableObjectPath);
                 for (int j = 0; j < (visemes[i] as Viseme_Mixed).visemes.Length; j++)
                 {
                     (visemes[i] as Viseme_Mixed).visemes[j].name = (visemes[i] as Viseme_Mixed).visemes[j].GetType().ToString().Split('.')[1];
                     AssetDatabase.AddObjectToAsset((visemes[i] as Viseme_Mixed).visemes[j], scriptableObjectPath);
                 }
             }
             else
             {
                 AssetDatabase.AddObjectToAsset(visemes[i], scriptableObjectPath);
             }
         }
         AssetDatabase.SaveAssets();
         LoadingBarViewer.Instance.SetNextPhase();
     }
     catch (Exception e)
     {
         for (int i = 0; i < visemes.Count; i++)
         {
             Debug.LogError(visemes[i].name);
         }
         Debug.Log("Failed to create ScriptableObject\n" + e);
     }
 }
 public void PlayDialogueAudio(VisemeScriptableObject dialogueData)
 {
     audioSource.clip = dialogueData.dialogueAudio;
     audioSource.Play();
 }
 public void DisplaySubtitles(VisemeScriptableObject dialogueData)
 {
     thisText.text = dialogueData.dialogueTranscription;
 }
 public void PlayLipSyncAnimation(VisemeScriptableObject data)
 {
     dialogueData = data;
     PlayLipSyncAnimation();
 }