ステージセレクトのシーンからゲームシーンに切り替わる時に少し読みこみ時間がかかります。(2~3秒くらいです)
OnClickのボタンで切り替わるようにしています。
そのシーンが切り替わろうとしている時に遷移先のゲームシーンにあるボタンの位置をタップすると遷移した瞬間にボタンが反応してしまいます。
子に透明なimageをつけたゲームオブジェクトを上からかぶせてみたり、ボタンコンポーネントのenabledをfalseにしたりしたのですがなかなか上手くいきません。(遷移先のゲームシーンのボタンは遷移してすぐ使えるようにしているので、Awakeでボタンのenabledをfalseに、Startでtrueにして試していました)あとInvokeはなるべく使わないようにしています。
なので遷移中に遷移前のシーンでのタップでも反応しないようにする方法を教えていただきたいです。
情報不足ですみません。コードを追記します。
下記の各パターンを試しました。
シーン遷移中にステージセレクトシーンの左上をタップすると、ゲームシーンにあるbackButton(画面左上に設置)が反応します。
backButtonの処理も載せます。
//ゲームシーン using UnityEngine.SceneManagement; public class GameManager : MonoBehaviour { public int stageLevelNo; public void PushBackButton() //ボタンコンポーネントのOnClickです { SceneManager.LoadScene("StageSelectScene" + stageLevelNo); } }
パターン1
//ステージセレクトシーン using UnityEngine.SceneManagement; public class StageManager : MonoBehaviour{ public GameObject panel; //子にimageをつけたゲーム画面全体を覆うゲームオブジェクトでinspectorでSetActiveをfalseにしています public void PushStageButton(int stageNo) //ボタンコンポーネントのOnClickです { panel.SetActive(true); SceneManager.LoadScene("GameScene" + stageNo); } }
パターン2
//ゲームシーン public class GameManager : MonoBehaviour { public GameObject panel; //子にimageをつけたゲーム画面全体を覆うゲームオブジェクトでinspectorでSetActiveをtrueにしています void Start () { panel.SetActive(false); } } ```パターン3
//ゲームシーン
using UnityEngine.UI;
public class GameManager : MonoBehaviour{
public GameObject backButton; void Awake(){ backButton.GetComponent<Button>().enabled = false; } void Start(){ backButton.GetComponent<Button>().enabled = true; }
}
パターン4
//ゲームシーン
using UnityEngine.UI;
public class GameManager : MonoBehaviour{
public GameObject backButton; //inspectorでInteractableのチェックを外しています。 void Start(){ backButton.GetComponent<Button>().interactable = true; }
}
回答1件
あなたの回答
tips
プレビュー