コード例 #1
0
        /// <summary>
        /// 音声おしゃべり
        /// </summary>
        /// <returns></returns>
        public static IEnumerator GetAudioClip(MsgTopic NowLoadTopic, int AllocationId, int SubId)
        {
            if (AllocationId < 0 || AllocationId > 3)
            {
                //何もしない
            }
            else
            {
                //ソース指定し音楽流す
                //音楽ファイルロード
                using (WWW www = new WWW(UtilVoiceByOS.GetVoiceApiUrl(), CreateRequest(NowLoadTopic, SubId)))
                {
                    ////読み込み完了まで待機
                    //yield return www;

                    // 画像ダウンロード完了を待機
                    while (www.MoveNext())
                    {// コルーチンの終了を待つ
                        yield return(null);
                    }

                    //ダウンロードサイズが5kb以下ならエラーと判断
                    if (www.bytesDownloaded > 5000)
                    {
                        yield return(www.GetAudioClip(true, true, UtilVoiceByOS.GetVoiceFileTypeByOs()));
                    }
                    else
                    {
                        yield return(null);
                    }
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 初期のボイスデータをセットする
        /// </summary>
        /// <param name="NowLoadTopic"></param>
        /// <returns></returns>
        public static IEnumerator SetVoiceDataStart(MsgTopic NowLoadTopic, int ModelCount)
        {
            if (NowLoadTopic.TalkSentenceList.Count < 1)
            {
                goto End;
            }

            //センテンス状態チェック
            if (NowLoadTopic.TalkSentenceList[0].VoiceData != null)
            {
                //すでにデータがあれば何もしない
            }
            else if (NowLoadTopic.TalkSentenceList[0].AllocationId < 0 || NowLoadTopic.TalkSentenceList[0].AllocationId >= ModelCount)
            {
                //何もしない
            }
            else
            {
                //ソース指定し音楽流す
                //音楽ファイルロード
                using (WWW www = new WWW(UtilVoiceByOS.GetVoiceApiUrl(), CreateRequest(NowLoadTopic, NowLoadTopic.TalkSentenceList[0].SubId)))
                {
                    // 画像ダウンロード完了を待機
                    while (www.MoveNext())
                    {// コルーチンの終了を待つ
                        yield return(null);
                    }

                    //ダウンロードサイズが5kb以下ならエラーと判断
                    if (www.bytesDownloaded > 5000)
                    {
                        NowLoadTopic.TalkSentenceList[0].VoiceData = www.GetAudioClip(true, true, UtilVoiceByOS.GetVoiceFileTypeByOs());
                    }
                    else
                    {
                        NowLoadTopic.TalkSentenceList[0].VoiceData = null;
                    }
                }
            }

            //終了ラベル
            End :;
        }