UGUI之Toggle使用

Toggle对象是一个开关。一般用于单选,可以用Toggle制作背包的选项卡

在场景中创建Toggle按钮。看看他有Toggle组件

 

通过Is On属性来控制是否选中,其实是控制Graphic属性中的显示和隐藏,

接下来一步一步完成选项卡的制作,先看看效果

 

tab1是没有选中的图片

Image是选中后的图片

在tab1上添加Toggle组件,然后把Image拖拽到Graphic属性

 

这样就制作了一个单选按钮,接着复制3个

 

但这里我们要的是只能选择tab1的时候。tab2和tab3是隐藏的。但你发现。都可以选中。这里需要用到Toggle Group组件。即分组,

这里在knapasack添加Toggle Group

然后把knapsack分别拖拽到tab1,tab2,tab3种的Group 属性中,把这三个作为一组。所以就能实现单选。

 

这样就实现了单选的效果。然后要实现每个组中有一个面板

创建3个空对象,并命名为Panel1,Panel2,Panel3,为了便于观察。在里面分别创建一个Button

 

现在我们分别通过tab来控制响应的panel来显示也隐藏

选择一个tab。比如tab1你会发现changed事件,这样就可以通过tab1(toggle组件的状态)来改变显示和隐藏

注册事件。把pan1拖拽到tab1的事件中。你又会发现 Dynamic bool 中有SetActive这是动态控制显示也隐藏

 

然后分别把panel2注册tab2,panel3注册tab3至此就完成了上面的效果

 

接着看看其他例子

第一个单选很简单。就不说了。

第二个是一个开关。关闭和打开。这个有两种方法。一种是UI完成。一种是通过代码完成

先看第一种:通过自带的事件来改变显示和隐藏

先看结构:

Image:背景图片

On:On显示的图片

Text:显示On

。。。。。

在On对象上添加Toggle组件,通过它的事件来改变对象的显示

从事件中可以看出来:当单击On的时候。

设置:On隐藏,显示Off,同理Off也注册同意的事件。这里没用任何代码。就搞定了。挺简单的,

这里用的是对象自带的静态方法

 

可以看到。顶部是动态的。下面是静态的。

 

好了。来看看第二种方法。通过代码改变显示和隐藏

 把on和off对象上的Toggle组件移除,在Image对象上添加Toggle组件。通过单击Image来获取Toggle的Is On属性来改变

(因为Toggle第一次单击Is On是true的话。在一次单击则是false)

编写脚本。挂在Image上

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class newToll : MonoBehaviour
{
    public GameObject SwitchOn;
    public GameObject SwitchOff;
    Toggle t;

    // Use this for initialization
    void Start()
    {
        t = GetComponent<Toggle>();

        //初始化默认值
        isTag(t.isOn);
    }

    // Update is called once per frame
    void Update()
    {

    }

    /// <summary>
    /// 注册Toggle事件
    /// </summary>
    /// <param name="on"></param>
    public void isTag(bool on)
    {
        //如果on显示
        SwitchOn.SetActive(on);
        //则off隐藏。取反即可
        SwitchOff.SetActive(!on);
    }
}

 

Image注册事件。

 

ok这样就完成了。自己试试吧

 

转载于:https://www.cnblogs.com/nsky/p/4852746.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Unity的Toggle组件和事件来实现在点击Toggle时切换子物体的颜色。首先,在子物体上添加一个Image组件,并将其颜色设置为默认颜色。然后在Toggle组件上勾选“Is On”属性,这样Toggle默认就是选中状态。接下来,在Toggle上添加一个Toggle组件,并在该组件的“On Value Changed”事件中添加一个事件处理程序。在事件处理程序中,你可以检查Toggle的选中状态,然后根据需要设置子物体的颜色。例如,以下代码将在Toggle选中时将子物体的颜色设置为红色,取消选中时将颜色设置回默认颜色: ```csharp public class ToggleColorController : MonoBehaviour { public Toggle toggle; public Image childImage; public Color defaultColor = Color.white; public Color selectedColor = Color.red; void Start() { // 设置子物体默认颜色 childImage.color = defaultColor; // 添加Toggle事件处理程序 toggle.onValueChanged.AddListener(OnToggleValueChanged); } void OnToggleValueChanged(bool isOn) { // 根据Toggle的选中状态切换子物体颜色 if (isOn) { childImage.color = selectedColor; } else { childImage.color = defaultColor; } } } ``` 在这个示例中,我们为Toggle组件添加了一个事件处理程序,并在Start方法中设置了子物体的默认颜色。在事件处理程序中,我们检查Toggle的选中状态,并根据状态切换子物体的颜色。最后,将Toggle组件和子物体的Image组件分别分配给变量toggle和childImage。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值