見出し画像

テキストを下から上にスクロールさせるボタンのコード

ユニティで速読アプリ作ろうと思って試作中。

AIに相談しながらボタン押すとスクロール
もう一度押すと止まるようにコード作ったのでめも。

流用できるようにボタンにオンクリックで使う方式にしています。

using UnityEngine;
using UnityEngine.UI;
using TMPro;
using Vector2 = UnityEngine.Vector2;
using System.Collections;

public class ScrollText : MonoBehaviour
{
    public Button yourButton; // ボタンをInspectorからアサインします
    public TMP_Text yourText; // スクロールさせたいテキストをInspectorからアサインします
    public float scrollSpeed = 0.5f; // スクロール速度を設定します
    private bool isScrolling = false; // スクロール中かどうかを判断するフラグ
    private Coroutine scrollCoroutine; // スクロールのCoroutineを保持します

    public void ToggleScroll()
    {
        // isScrollingフラグを反転させます(trueならfalseに、falseならtrueに)
        isScrolling = !isScrolling;

        // スクロールを開始または停止します
        if (isScrolling)
        {
            // 新しいCoroutineを開始し、そのインスタンスを保持します
            scrollCoroutine = StartCoroutine(ScrollCoroutine());
        }
        else
        {
            // 保持しているCoroutineを停止します
            if (scrollCoroutine != null)
            {
                StopCoroutine(scrollCoroutine);
            }
        }
    }

    private IEnumerator ScrollCoroutine()
    {
        while (isScrolling)
        {
            // テキストの位置をスクロール速度に応じて変更します
            yourText.rectTransform.anchoredPosition += new Vector2(0, scrollSpeed);
            yield return null;
        }
    }
}


using Vector2 = UnityEngine.Vector2;

は2を3にしたら3D的に使えるんじゃないかなあ。

この記事が気に入ったらサポートをしてみませんか?