Ich versuche, eine einfache Bedingung zu machen:Interactable Taste UNITY
Wenn der Wert ich habe, weniger als der Preis ist es das Element kostet, ist die Schaltfläche deaktiviert.
Wenn der Wert, den ich habe, größer oder gleich dem Preis ist, den es kostet, ist die Schaltfläche aktiviert und ich kann sie kaufen.
Aber wenn ich teste, habe ich ein paar Probleme.
Erstens, wenn ich weniger als die Artikelkosten habe, ist die Schaltfläche aktiviert, und nur wenn ich darauf klicke, ist es, wenn es deaktiviert.
Zweitens, wenn ich weniger als die Artikelkosten habe und ich auf es klicke es deaktiviert, aber wenn ich genug bekomme, um das Element zu kaufen, ist die Schaltfläche nicht wieder aktiviert.
Wie kann ich diese Variablen die ganze Zeit überprüft werden? Wenn ich genug habe, ist die Schaltfläche aktiviert, wenn sie nicht deaktiviert ist.
Bellow mein Scrip:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class BuySkin : MonoBehaviour {
public int price;
public Button buyBee1;
void OnEnable()
{
//Register Button Events
buyBee1.onClick.AddListener (() => buySkin (buyBee1));
}
public void buySkin(Button button)
{
if (BeeCoinScore.coin >= price) {
BeeCoinScore.coin -= price;
buyBee1.interactable = false;
}
if (BeeCoinScore.coin < price) {
buyBee1.interactable = false;
}
}
void OnDisable()
{
//Un-Register Button Events
buyBee1.onClick.RemoveAllListeners();
}
}
Ich denke, das obige Skript ist für eine Art von Kauf Fenster, so dass Sie wahrscheinlich nicht aktualisieren müssen, dass jeder Rahmen. – yes
Es funktioniert nicht, wenn ich nicht genügend Ressourcen zum Kauf des Artikels habe, ist die Schaltfläche aktiviert. Wenn Sie keine Ressourcen haben, sollte es deaktiviert werden, bis ich genug Ressource habe, um das Element zu kaufen. –
@AlanVieiraRezende hast du versucht es einfach in OnEnable zu setzen? – yes