我的播放状态中有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
}
此按钮应更改t1Bool
,t2Bool
和t3Bool
的值,这些更改应反映在此脚本中:
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;
}
}
}
我在控制台中没有错误但是切换按钮在播放模式下根本不起作用,就像值被锁定,我无法选中或取消选中按钮一样,它们只是保持原样。
你知道为什么吗?
答案 0 :(得分:1)
每次调用与GUI相关的函数时,您都在重新创建HydroElectric
,显然没有反映出更改,并且您得到了您所说的行为。
将这行代码从该函数移到其他地方,例如在构造函数中,它将表现正常。