protected override OdinMenuTree BuildMenuTree()
        {
            OdinMenuTree tree = new OdinMenuTree(supportsMultiSelect: true)
            {
            };

            var sos = AssetDatabase.FindAssets("t:ClipTextSO");


            foreach (var so in sos)
            {
                string     path       = AssetDatabase.GUIDToAssetPath(so);
                ClipTextSO clipTextSo = (ClipTextSO)AssetDatabase.LoadAssetAtPath(path, typeof(ClipTextSO));
                tree.Add(path.Replace(".asset", ""), clipTextSo);
            }

            return(tree);
        }
 public void NextInQueue(ClipTextSO inputClipTextSo, double inputTotalSpeed)
 {
     if (Application.isPlaying)
     {
         SpeakerSubTitle subTitle = speakerSubTitles.Dequeue();
         subTitle.Reset();
         subTitle.gameObject.SetActive(true);
         subTitle.InitMessage(inputClipTextSo.speakerName, inputClipTextSo.lines, (float)inputTotalSpeed);
         speakerSubTitles.Enqueue(subTitle);
     }
     else
     {
         if (tmpSpeakerLine)
         {
             DestroyImmediate(tmpSpeakerLine.gameObject);
         }
         tmpSpeakerLine = Instantiate(speakerSubTitle, parentTransform);
         tmpSpeakerLine.EditorInit(inputClipTextSo.speakerName, inputClipTextSo.lines, (float)inputTotalSpeed);
     }
 }