切换按钮不';不起作用
本文关键字:不起作用 按钮 | 更新日期: 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
}
此按钮应更改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;
}
}
}
我在控制台中没有错误,但切换按钮在播放模式下根本不起作用,比如如果值被锁定,我无法选中或取消选中按钮,它们只是保持原样。
你知道为什么吗?
每次调用与GUI相关的函数时,都会重新创建HydroElectric
,很明显,更改不会得到反映,您会得到所说的行为。
将这行代码从该函数移到其他地方,例如构造函数中,它就会正常工作。