アイテムが買えるボタンを押したら別のボタンも押せるようになるスクリプトと、そのもう一つのボタンのスクリプト(mpを使う)を書きました。しかし、前者のInteractableと、後者のInteractableがスクリプト通りに動作するときとしないときがありmpが足りないのにtrueになったり足りててもfalseになったりします。何故このように運ゲーのようになっているのでしょう?
別のボタンが押せるようになるボタン
Button btn; public Button mpbtn; public Coin(スクリプト) coin; public bool 押した後(int value) { if (value <= coin.Money) { mpbtn.interactable = true; return true; } else { btn.interactable = false; return false; } } public void ButtonClick(BaseEventData data) { 押した後(500); }
mpを使うボタン
Button btn; public MagicPoint(スクリプト) mp; void Start() { btn = this.GetComponent<Button>(); btn.interactable = false; } public bool Boolbtn(int mpvalue) { if (mpvalue < mp.MP) { btn.interactable = true; return true; } else { btn.interactable = false; return false; } } void Update() { Boolbtn(2); } public void ButtonClick(BaseEventData data) { mp.Pay(3); }
・mpが0~2のときはボタンが押せなくなり、3以上のときは押せる
・3mpの対価は一回だけ貰える(まだ途中ですが一回押したボタンはfalseにする予定です)
mpボタンのスクリプトはvoid start内の「btn.interactable = false;」があること以外他のボタンのスクリプトと全く同じで、それらのボタンはしっかり動作します。
回答2件
あなたの回答
tips
プレビュー