Toggle初接触
就在前前个月,因为需要用到一个多个选项单个选中的功能(不可都不选),百度到了UGUI自带的Toggle组件,自己尝试了下,被挫败了。
在前几天的案例中,终于再次接触到了此组件,有所领悟。
首先看UI面板的设置:红圈为三个有效按钮组件,IconHolder为管理父物体
首先,在(多个并想要一起监控的)按钮上添加Toggle组件,然后在IconHolder上添加ToggleGroup组件,将IconHolder拖拽到三个按钮Toggle组件下的Group一栏中,并将IconHolder的ToggleGroup组件的Allow Switch Off取消勾选,这样就会形成只要在这个Group里的按钮必须有一个保持激活的状态效果。
配合Group组件下的Onvaluechanged功能,写下如下对接代码
[Header("道具范围提示效果")]
///该三个为直接拖拽的带动画组件的游戏物体。
public GameObject hoeSelected;
public GameObject tntSelected;
public GameObject mapSelected;
//按下HoeIcon按钮,动态改变isON,下面两个方法同理。
public void OnHoeSelected(bool isOn)
{
AudioManager.Instance.PlayClip(AudioManager.Instance.button);
GameManager.Instance.hoeSelected.SetActive(isOn);
}
public void OnTntSelected(bool isOn)
{
AudioManager.Instance.PlayClip(AudioManager.Instance.button);
GameManager.Instance.tntSelected.SetActive(isOn);
}
public void OnMapSelected(bool isOn)
{
AudioManager.Instance.PlayClip(AudioManager.Instance.button);
GameManager.Instance.mapSelected.SetActive(isOn);
}
在我们的逻辑要求下,这三个按钮必有一个是激活状态,可以互相切换(一开另一个关)。
会交替播放三个音效,交替激活(关闭)三个游戏物体。