切换按钮不';不起作用

本文关键字:不起作用 按钮 | 更新日期: 2023-09-27 18:27:57

我在播放状态下有3个切换按钮,如下所示:

public void ShowIt()
        {
            HydroElectric ec = new HydroElectric();
            ec.t1Bool = GUI.Toggle (new Rect (25, 55, 100, 50), ec.t1Bool, "Turbina 2 MW");
            ec.t2Bool = GUI.Toggle (new Rect (25, 95, 100, 50), ec.t2Bool, "Turbina 3 MW");
            ec.t3Bool = GUI.Toggle (new Rect (25, 135, 100, 50), ec.t3Bool, "Turbina 1 MW");
            GUI.Box (new Rect (Screen.width - 100, 60, 80, 25), ec.prod.ToString ());      // PRODUCED ENERGY  
         }

此按钮应更改t1Boolt2Boolt3Bool的值,这些更改应反映在此脚本中:

using System;
using UnityEngine;
namespace Assets.Code.PowerPlants
{
    public class HydroElectric
    {
        public bool t1Bool;
        public bool t2Bool;
        public bool t3Bool;
        public static int turbina1;
        int turbina2;
        int turbina3;
        public float prod;
        public HydroElectric ()
        {
         t1Bool = true;
         t2Bool = true;
         t3Bool = false;
         prod = 0f; 
        }
        public float HydroControlPanel ()
        {
            turbina1 = t1Bool ? 2 : 0;
            turbina2 = t2Bool ? 3 : 0;
            turbina3 = t3Bool ? 1 : 0;
            prod = turbina1 + turbina2 + turbina3;
            return prod;
        }
    }
}

我在控制台中没有错误,但切换按钮在播放模式下根本不起作用,比如如果值被锁定,我无法选中或取消选中按钮,它们只是保持原样。

你知道为什么吗?

切换按钮不';不起作用

每次调用与GUI相关的函数时,都会重新创建HydroElectric,很明显,更改不会得到反映,您会得到所说的行为。

将这行代码从该函数移到其他地方,例如构造函数中,它就会正常工作。