🎮

長文をScroll 〜Unity

に公開

ちょっとした説明文がないと

理解されにくいかなあ、と思い、
でも毎回、毎回それを読まされるのもイヤだろうから
トップページでHintButtonを押したらパネルが出て、
わかったButtonを押せば消えて、
それもちょっと説明長くなりそうだから,Scrollできればいいかなとか。

できたことと、できなかったこと

出したり、消したり、Scrollしたり、は、できた。
できなかったのは、
長文だからinspectorの小さい窓に打つのはイヤだな、Scriptで管理したいな
という部分。
どうしても画面に現れてくれないので、今回は断念。

ScrollView

トップページでUIからScrollViewを選択。
ScrollViewの中に勝手にできているのが

  • Viewport→content
  • ScrollBar(縦・横)
    • 今回、横は要らないので削除
    • 結果的に、そんなに長くならなくて、縦のScrollBarも出番なし

contentの下にUIからTextMeshProを選択。

  • ここにScriptの内容を表示したかったが、諦めて直打ち。
  • 結局範囲内に収まったけど、ちょっと引っぱると、びよんと動く。

HintButton、OKButton

  • HintButtonはほかのButton同様Canvas下に置く。
  • OKButtonはScrollView直下、ViewportやScrollBarと同じ層に置く。
  • Scriptを書いて両方にattach。
  • それぞれでOnClick()設定。同じScriptだけど、違う関数を選ぶ。
    • Hintボタンを押すとScrollViewが出る。
    • OKボタンを押すとScrollViewが消える。
using UnityEngine;
using UnityEngine.UI;

public class HintController : MonoBehaviour
{
    public GameObject scrollView; // ScrollViewのGameObjectへの参照

    // 主画面のHintButtonが押されたときに呼び出されるメソッド
    public void ShowScrollView()
    {
        scrollView.SetActive(true); // ScrollViewを表示する
    }

    // ScrollView内のOKButtonが押されたときに呼び出されるメソッド
    public void HideScrollView()
    {
        scrollView.SetActive(false); // ScrollViewを非表示にする
    }
}

ScrollViewをinactiveにしておかないと

起動と同時に出ちゃう。消せば消えるけど。
なので、inspectorのチェックを外しておく。

以上、次回はちゃんと、Scriptから読み込みたい。

Discussion