どうもなおゆです。
現在作成中の子供向けアプリで、チュートリアル画面を実装した時に使った、クリック待ちの処理を備忘として残しておきます。
今回のテーマ
クリック待ちの処理を実装する。
これが実際のチュートリアル画面の導入部分です。
ネズミのセリフ「あそびかたを~」と「ぼくがちらかした~」の間がクリック待ち状態となっています。クリックされると、セリフと画像が切り替わります。行っている処理の流れはこんな感じです↓
クリック待ちの処理はコルーチン内でWaitUntilを使っています。
yield return new WaitUntil(() => Input.GetMouseButtonDown(0)); // クリック待ち処理
ちなみにInput.GetMouseButtonDownはスマホゲームの場合タップの処理として扱われます。
コードはこんな感じです↓
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; // <-- 忘れがち
using DG.Tweening; // <-- 忘れがち
public class TutorialScript : MonoBehaviour
{
public Text speechBubbleText; // ネズミのセリフ
public Text playTutorialText; // 「せつめいチュウ」の文字
private CanvasGroup canvasGroup;
public Image[] tutoRialImages = new Image[10]; // 画像用配列
private string[] mouseLines = {"あそびかた を せつめいするチュー", // セリフ0
"ぼくが ちらかした たべものを おそうじ してほしいチュー", // セリフ1
};
void Start()
{
StartCoroutine("TutorialStart"); // コルーチン開始
}
private IEnumerator TutorialStart()
{
speechBubbleText.enabled = false; // ネズミのセリフ非表示
playTutorialText.enabled = false; // 「せつめいチュウ」の文字 非表示
for (int i = 1; i < tutoRialImages.Length; i++) // 画像たちを非表示
{
tutoRialImages[i].enabled = false;
}
canvasGroup = tutoRialImages[0].GetComponent<CanvasGroup>(); // 暗転用画像
yield return new WaitForSeconds(0.7f); // 暗転前の微妙な間
canvasGroup.DOFade(0.5f, 1.0f); // 暗転
yield return new WaitForSeconds(1.0f); // 間
tutoRialImages[1].enabled = true; // ネズミ 表示
tutoRialImages[2].enabled = true; // 吹き出し枠 表示
speechBubbleText.enabled = true; // ネズミのセリフ 表示
playTutorialText.enabled = true; // 「せつめいチュウ」の文字 表示
speechBubbleText.text = mouseLines[0]; // セリフ「あそびかたを~」
yield return new WaitUntil(() => Input.GetMouseButtonDown(0)); // クリック待ち処理
speechBubbleText.text = mouseLines[1]; // セリフ「ぼくがちらかした~」
tutoRialImages[3].enabled = true; // バナナ表示
yield return new WaitForSeconds(1.0f); // 間
yield return new WaitUntil(() => Input.GetMouseButtonDown(0)); // クリック待ち処理
// 以降は省略
}
}
コメント