コード例 #1
0
        /// <summary>
        /// 表示
        /// </summary>
        /// <param name="gameController">ゲーム全体の制御システム</param>
        public void Draw(GameController gameController)
        {
            gc = gameController;
            gameObject.SetActive(true);

            // ページを生成
            if (currentPanel != null)
            {
                Destroy(currentPanel.gameObject);
            }
            currentPanel = Instantiate(_GallaryPanelPrefab, transform);
            currentPanel.Create(this, gameController.NovelInfoList, gameController.Histories, PageIndex);

            InvalidateButtons(PageIndex);
        }
コード例 #2
0
        /// <summary>
        /// ページをスライドさせるアニメーション
        /// </summary>
        /// <param name="direction">
        /// 方向 1か-1を指定する
        /// 1なら1ページ進み、-1なら1ページ戻る
        /// </param>
        private IEnumerator CoSlidePage(int direction)
        {
            // 新しいページのパネルを生成する
            GallaryPanelCreater newPanel = Instantiate(_GallaryPanelPrefab, transform);

            newPanel.transform.localPosition = new Vector3(panelWidth * direction, panelY);
            newPanel.Create(this, gc.NovelInfoList, gc.Histories, PageIndex);

            // 古いパネルと新しいパネルの両方を指定された方向に動かす
            float elaspedTime = 0f;

            while (elaspedTime < _SlideTime)
            {
                elaspedTime += Time.deltaTime;

                Vector3 pos = currentPanel.transform.localPosition;
                pos.x = Mathf.Lerp(0f, -panelWidth * direction, elaspedTime / _SlideTime);
                Vector3 dx = new Vector3(panelWidth * direction, 0f);

                currentPanel.transform.localPosition = pos;
                newPanel.transform.localPosition     = pos + dx;

                yield return(null);
            }

            // 新しいパネルをきっちり所定の位置に
            {
                Vector3 pos = newPanel.transform.localPosition;
                pos.x = 0f;
                newPanel.transform.localPosition = pos;
            }

            // 古いパネルを消して新しいパネルを参照するようにする
            Destroy(currentPanel.gameObject);
            currentPanel = newPanel;
        }