private IEnumerator DisplayNews(string result)
        {
            const float interval = 1f;

            if (string.IsNullOrEmpty(result) == true)
            {
                yield break;
            }

            //jsonを復号化
            string decjson = CryptInformation.DecryptString(result, CommonConst.CryptKey.DecNews);

            T_RLU_NewsHistory model = JsonMapper.ToObject <T_RLU_NewsHistory>(decjson);

            if (CommonFunction.IsNull(model) == true)
            {
                yield break;
            }

            NewsNumber = model.iSequence;

            if (IsFirst == true)
            {
                IsFirst = false;
                yield break;
            }

            NewsText.text = CreateNews(model);

            float time = 0;

            //だんだん明るく
            time = 0;
            while (time <= interval)
            {
                cvGroup.alpha = Mathf.Clamp((time / interval), 0f, 1f);

                time += CommonFunction.GetDelta(1);
                yield return(null);
            }

            time = 0;
            //5秒待つ
            while (time <= 5)
            {
                time += CommonFunction.GetDelta(1);
                yield return(null);
            }

            //だんだん暗く
            time = 0;
            while (time <= interval)
            {
                cvGroup.alpha = Mathf.Clamp(1 - (time / interval), 0f, 1f);
                time         += CommonFunction.GetDelta(1);
                yield return(null);
            }

            cvGroup.alpha = 0;
        }
        private string CreateNews(T_RLU_NewsHistory model)
        {
            string result;

            DungeonInformation duninfo = TableDungeonMaster.GetValue(model.iDungeonObjNo);

            switch (model.iActionNo)
            {
            //ダンジョン挑戦
            case NewsType.DungeonStart:
                result = string.Format("news:<color={0}>{1}</color>が<color={2}>{3}</color>に挑戦開始",
                                       CommonConst.Color.Player,
                                       model.vcCharacterName,
                                       CommonConst.Color.Dungeon,
                                       duninfo.Name);
                break;

            //ダンジョン進行
            case NewsType.DungeonNext:
                result = string.Format("news:<color={0}>{1}</color>が<color={2}>{3}</color>{4}Fに到達",
                                       CommonConst.Color.Player,
                                       model.vcCharacterName,
                                       CommonConst.Color.Dungeon,
                                       duninfo.Name,
                                       model.iFloor);
                break;

            //踏破失敗
            case NewsType.DisruptFail:

                result = string.Format("news:<color={0}>{1}</color>が<color={5}>{6}</color>にて<color={2}>{3}</color>{4}Fで踏破失敗",
                                       CommonConst.Color.Player,
                                       model.vcCharacterName,
                                       CommonConst.Color.Dungeon,
                                       duninfo.Name,
                                       model.iFloor,
                                       CommonConst.Color.DeathCause,
                                       model.vcCouse);
                break;

            //踏破成功
            case NewsType.DisruptSuccess:
                result = string.Format("news:<color={0}>{1}</color>が<color={2}>{3}</color>の踏破成功",
                                       CommonConst.Color.Player,
                                       model.vcCharacterName,
                                       CommonConst.Color.Dungeon,
                                       duninfo.Name,
                                       model.iFloor);

                break;

            default:
                result = "";
                break;
            }

            return(result);
        }
        private IEnumerator CheckNews()
        {
            T_RLU_NewsHistory input = new T_RLU_NewsHistory();

            input.iSequence = NewsNumber;
            input.vcVersion = CommonConst.SystemValue.CurrentVersion;
            input.vcGameId  = GameStateInformation.GameId.ToString("D");

            string json = JsonMapper.ToJson(input);
            //jsonを暗号化
            string ecjson = CryptInformation.EncryptString(json, CommonConst.CryptKey.GetNews);

            //ニュースを取得
            Dictionary <string, string> headers = new Dictionary <string, string>();

#if UNITY_EDITOR
            //sessionid = sessionid.Replace("ASP.NET_SessionId=", "");
            //Regex rgx = new Regex(";.+");
            //sessionid = rgx.Replace(sessionid, "");
            //headers.Add("Cookie", string.Format("ASP.NET_SessionId={0};", sessionid));
#endif

            WWWForm form = new WWWForm();
            form.AddField("input", ecjson);

#if UNITY_EDITOR
#else
            headers = form.headers;
            headers.Add("Access-Control-Allow-Credentials", "true");
            headers.Add("Access-Control-Allow-Headers", "Accept");
            headers.Add("Access-Control-Allow-Methods", "POST");
            headers.Add("Access-Control-Allow-Origin", "*");
#endif

            //WWW www = new WWW(UrlNews, form.data, headers);

            //while (www.isDone == false && www.progress != 1)
            //{
            //    yield return null;
            //}
            //yield return www;

            var www = ObservableWWW.Post(UrlNews, form.data, headers).ToYieldInstruction();
            while (!(www.HasResult || www.IsCanceled || www.HasError)) // 3つもプロパティ並べるのダルいので次回アップデートでIsDoneを追加します予定
            {
                yield return(null);
            }

            string result = "";
            if (www.HasResult == true && CommonFunction.IsNullOrWhiteSpace(www.Result) == false)
            {
                result = www.Result;
            }

            //if(CommonFunction.IsNullOrWhiteSpace(www.error) == true)
            //{
            //    result = www.text;
            //}

            www.Dispose();

            yield return(null);

            //yield return Observable.FromMicroCoroutine(() => DisplayNews(result)).Subscribe();
            MainThreadDispatcher.StartUpdateMicroCoroutine(DisplayNews(result));
            //yield return  StartCoroutine(DisplayNews(result));

            NewsCheckCoroutine = null;
        }