Example #1
0
        /// <summary>
        /// 先頭ウインドウをサクジョする
        /// </summary>
        private void DestroyWindow()
        {
            Queue <TalkWindow> bufQ = new Queue <TalkWindow>();

            //カウントチェック
            if (WindowTalkListQ.Count < 1)
            {
                return;
            }
            else
            {
                //まわして、範囲内のものはバッファキューに、範囲外のものは削除
                while (WindowTalkListQ.Count > 0)
                {
                    TalkWindow talkWindow = WindowTalkListQ.Dequeue();

                    if (WindowTalkListQ.Count > 2)
                    {
                        talkWindow.CloseWindow();
                    }
                    else
                    {
                        //1個取り出し、削除
                        bufQ.Enqueue(talkWindow);
                    }
                }

                //すげかえる
                WindowTalkListQ = bufQ;
            }
        }
Example #2
0
        public TalkWindow CreateWindowTalk(GameObject window, string message)
        {
            try
            {
                //ウインドウ名設定
                window.name = "TalkWindow" + WindowTalkListQ.Count;

                //親キャンバスに登録
                window.transform.SetParent(CanvasRendering.transform, false);

                //位置設定
                window.transform.localPosition = WINDOW_POS.GetPos(ModelLocation);

                //サイズ変更
                RectTransform windowRect = window.GetComponent <RectTransform>();

                //ウインドウサイズ設定
                windowRect.sizeDelta = CulcWindowSize(message);

                //ローカルスケール設定
                windowRect.localScale = new Vector3(0.5f, 0.5f, 0.5f);

                //ウインドウインスタンス取得
                TalkWindow talkWindow = window.GetComponent <TalkWindow>();

                //モデル設定
                talkWindow.TargetModel = ActiveModel;

                //テキスト設定
                talkWindow.SetNextLine(message);

                //ペアレント設定
                talkWindow.SetParentWindow(window);

                //高さ設定
                talkWindow.SetHeightImg(windowRect.sizeDelta.y);

                //生成時刻設定
                talkWindow.SetCreateTime(DateTime.Now);

                //ウインドウ画像の設定
                talkWindow.SetWindowImage(SpriteWindow);

                //NULLでなければウインドウセット
                if (talkWindow != null)
                {
                    //ウインドウセット
                    SetWindow(talkWindow, AllocationId);
                }

                //結果を返す
                return(talkWindow);
            }
            catch (Exception ex)
            {
                Debug.Log(ex);
                return(null);
            }
        }
Example #3
0
    /// <summary>
    /// ウインドウ作成
    /// </summary>
    /// <param name="message"></param>
    /// <param name="AllocationId"></param>
    public void CreateWindow(string message, int AllocationId)
    {
        //キャラクターデータ取得
        LiplisModel charData = modelController.GetCharacterModel(AllocationId);

        //おしゃべりウインドウ生成し、現在ウインドウ設置
        this.NowTalkWindow = charData.CreateWindowTalk(message);
    }
Example #4
0
        /// <summary>
        /// ウインドウをセットする
        /// </summary>
        /// <param name="talkWindow"></param>
        /// <param name="AllocationId"></param>
        public void SetWindow(TalkWindow talkWindow, int AllocationId)
        {
            //ターゲットモデルセット
            talkWindow.TargetModel = ActiveModel;

            //ウインドウを追加する
            AddWindow(talkWindow);

            //ウインドウ
            DestroyWindow();
        }
Example #5
0
    // Start is called before the first frame update
    void Start()
    {
        talkWindow = TalkWindow.GetTalkWindow();
        text       = talkWindow.content_text;
        canvas     = talkWindow.canvas;

        talkWindow.SetCharImage(char_image_path);


        talkTool = GameObject.Find("NPCs").GetComponentInParent <TalkTool>();
    }
Example #6
0
        /// <summary>
        /// ウインドをスライドする
        /// </summary>
        private void SlideWindow(TalkWindow newTalkWindow)
        {
            //ウインドウが無ければ動かさない
            if (WindowTalkListQ.Count < 1)
            {
                return;
            }

            //移動量算出
            float moveVal = GetWindowMoveValue(newTalkWindow.GetCurrentText());

            //回してスライド
            foreach (var talkWindow in WindowTalkListQ)
            {
                if (!talkWindow.flgEnd)
                {
                    //移動目標設定
                    talkWindow.SetMoveTarget(new Vector3(talkWindow.ParentWindow.transform.localPosition.x, talkWindow.ParentWindow.transform.localPosition.y + moveVal, talkWindow.ParentWindow.transform.localPosition.z));
                }
            }
        }
Example #7
0
        /// <summary>
        /// ウインドウを追加する
        /// </summary>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <param name="z"></param>
        /// <param name="message"></param>
        private void AddWindow(TalkWindow talkWindow)
        {
            //1個以上ならスライドする
            if (WindowTalkListQ.Count >= 1)
            {
                //一つ前のウインドウの高さを取得する
                float prvHeight = this.NowTalkWindow.heightImg;

                float height = NowTalkWindow.ParentWindow.GetComponent <RectTransform>().sizeDelta.y;


                //ウインドウ移動量設定
                SlideWindow(talkWindow);
            }

            //キューに追加
            this.WindowTalkListQ.Enqueue(talkWindow);

            //現在おしゃべりウインドウ設置
            this.NowTalkWindow = talkWindow;
        }
Example #8
0
        private void textBlock_Talk_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            try
            {
                TimeLineItem target = ((sender as Image).TemplatedParent as ContentPresenter).Content as TimeLineItem;
                if (target == null)
                {
                    return;
                }

                TalkWindow w = new TalkWindow(this.account, target.Tweet);
                w.Owner = this.main;
                w.Show();
            }
            catch (TwitterException tex)
            {
                MessageBox.Show(tex.Message,
                                "Twitter Exception.",
                                MessageBoxButton.OK,
                                MessageBoxImage.Warning);
            }
        }