得点に応じてパネルと切り替えるスクリプトです
Badgeに応用できます
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //UI使用する public class panelSelector : MonoBehaviour { //ゲームオブジェクトを変数に入れる public GameObject panel1; public GameObject panel2; public GameObject panel3; //UI要素 public Text scoreText; int myScore; //スタート時初期設定 void Start() { //起動時にパネル1のみ表示させ,2,3は非表示(初期画面的なやつ) panel1.SetActive(true); panel2.SetActive(false); panel3.SetActive(false); myScore = 0; scoreText.text = myScore.ToString(); } //とくになにもやってない void Update() { } //このオブジェクトに当たったときに実行 private void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "red")//タグがredなら10加算 { myScore += 10; scoreText.text = myScore.ToString(); Destroy(other.gameObject); } else if (other.gameObject.tag == "gold")//tagがgoldなら50加算 { myScore += 50; scoreText.text = myScore.ToString(); Destroy(other.gameObject); } scoreCheck(myScore);//関数scoreCheckを実行,引数にスコアを変数で渡す } //スコアをチェックしスコアに応じてパネルを表示,非表示する void scoreCheck(int myScoreSend) { if (myScoreSend > 99 && myScoreSend < 200)//100以上200未満 { panel1.SetActive(false); panel2.SetActive(true); panel3.SetActive(false); } else if (myScoreSend > 199)//200以上 { panel1.SetActive(false); panel2.SetActive(false); panel3.SetActive(true); } } }
実装例です
100点越でパネル(右上)が緑に,200点超えで赤になります
実行動画(コインが後ろに落ちて得点されています)