トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

左右ボタンでページ送り【Unity】

右ボタンを押したら次のページへ、左ボタンを押したら前のページへ行く。

テキストの内容が変わることによってページを変えているようにする。

こちらの記事を参考に実装した

gametukurikata.com

    private void OnNextPaper()
    {
        if (_NowPageNumber != _MaxPageNumber)
        {
            ChangeContents(_NowPageNumber + 1);
        }

    }

    private void OnPreviousPaper()
    {
        if (_NowPageNumber != 1)
        {
            ChangeContents(_NowPageNumber - 1);
        }

    }
    private void ChangeContents(int pageNumber)
    {
        _NowPageNumber = pageNumber;

        Text_Title.text = BlogList[pageNumber-1].Title;
        Text_Contents.text = BlogList[pageNumber-1].Contents;

    }

マックスまで行くと止まる。ループはしない

Listはここでやった

bibinbaleo.hatenablog.com

 全体

[SerializeField] private Text Text_Title;
    [SerializeField] private Text Text_Contents;
    [SerializeField] private Button _ButtonNext;
    [SerializeField] private Button _ButtonPrevious;
    public List<Blog> BlogList = new List<Blog>();
    private int _MaxPageNumber;
    private int _NowPageNumber = 1;
    void Start()
    {
        _MaxPageNumber = BlogList.Count;
        ChangeContents(_NowPageNumber);
        _ButtonNext.onClick.AddListener(OnNextPaper);
        _ButtonPrevious.onClick.AddListener(OnPreviousPaper);
      
    }


    [System.Serializable]
    public class Blog
    {
        public string Title;
        [TextArea(1, 10)] public string Contents;


        public Blog(string title ,string contents)
        {
            Title = title;
            Contents = contents;
        }
     }

    private void OnNextPaper()
    {
        if (_NowPageNumber != _MaxPageNumber)
        {
            ChangeContents(_NowPageNumber + 1);
        }

    }

    private void OnPreviousPaper()
    {
        if (_NowPageNumber != 1)
        {
            ChangeContents(_NowPageNumber - 1);
        }

    }
    private void ChangeContents(int pageNumber)
    {
        _NowPageNumber = pageNumber;

        Text_Title.text = BlogList[pageNumber-1].Title;
        Text_Contents.text = BlogList[pageNumber-1].Contents;

    }

startで最初のページを1にして、マックスのページをLost.Countで入れている。

_NowPageNumber = 1;
_MaxPageNumber = BlogList.Count;
ChangeContents(_NowPageNumber);

そしてページを変えている。

配列「length」で数を取ったのにListはCountなのか~

 

できた!

f:id:bibinbaleo:20191117161537g:plain