Я создал свою собственную систему достижений, используя это видео , но у меня возникла проблема с тем, если пользователь получит два или более достижений, например, одно из моих достижений - убийство 10 врагов, где, как Еще одно мое достижение - собрать 30 монет. Однако я позаботился о том, чтобы достижение давалось только в конце игры, чтобы избежать проблем. Таким образом я понял, что если пользователь достигнет еще двух или более достижений, все мои панели достижений будут активированы одновременно, то есть только одна панель будет видна пользователю. Есть ли способ сделать так, чтобы каждая панель достижений появлялась за другой, если было достигнуто два или более достижений.
Это мой сценарий достижений:
public class AchievementScript : MonoBehaviour
{
private int Defeats_10;
public int Gain30Treasure;
public GameObject AchievePanel, AchievePanel2;
public Text achieveTitle, achieveTitle2;
public Text achieveText, achieveText2;
public Animator anim, anim2;
void Update()
{
Defeats_10 = PlayerPrefs.GetInt("10Enemies");
Gain30Treasure = PlayerPrefs.GetInt("treasure");
if (GameController.killAmount >= 10 && Defeats_10 != 10) //50
{
StartCoroutine(Achieved50Kills());
}
if (GameController.Coin >= 30 && Gain500Treasure != 30)
{
StartCoroutine(Achieved30Coins());
}
}
IEnumerator Achieved50Kills()
{
AchievePanel.SetActive(true);
Defeats_10 = 10;
PlayerPrefs.SetInt("10Enemies", Defeats_10);
achieveTitle.text = "10 Enemies Defeated";
achieveText.text = "You defeated 10 Enemies in a single game";
anim.SetBool("slideUp", true);
yield return new WaitForSeconds(3);
anim.SetBool("slideDown", true);
yield return new WaitForSeconds(1);
AchievePanel.SetActive(false);
anim.SetBool("slideUp", false);
anim.SetBool("slideDown", false);
}
IEnumerator Achieved30Coins ()
{
AchievePanel2.SetActive(true);
Gain30Treasure = 30;
PlayerPrefs.SetInt("treasure", Gain30Treasure);
achieveTitle2.text = "30 coins";
achieveText2.text = "You gained 30 coins in a single game";
yield return new WaitForSeconds(1);
anim2.SetBool("slideUp", true);
yield return new WaitForSeconds(3);
anim2.SetBool("slideDown", true);
yield return new WaitForSeconds(1);
AchievePanel2.SetActive(false);
anim2.SetBool("slideUp", false);
anim2.SetBool("slideDown", false);
}
Заранее спасибо! Я очень ценю помощь!