Unity技术手册-Toggle切换

8,098 阅读3分钟

“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第10篇文章,点击查看活动详情

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)

欢迎关注公众号【空名先生】获取更多资源和交流!

👉前提

这是小空坚持写的Unity新手向系列,欢迎品尝。

小空为了方便更多的人(新手)看明白,使用的汉字,真实项目尽量使用英文规则昂。

新手(√√√)

大佬(√)

👉实践过程

该组件的原理其实就控制一个目标组件的显示和隐藏,配合其他图片背景内容造成是一个开关的错觉。如图,是默认系统创建的一个Toggle控件。

image.png 重点在Toggle上,可以看到Toggle组件中的Transition和Button中的一样,有四个设置选项(下方有图,重点属性)无、颜色过度、精灵图切换过度、动画过度。更多详情可看小空Button的内容。

Is On:是否打开,对勾表示显示了下方Graphic属性中指定的图片,否则是隐藏,代码中可gameObject.GetComponent().isOn = false;随时修改

Toggle Transition:有两个值None和Fade,表示显示隐藏过程是否有渐变效果(时间很多)。

Graphic:指定要控制显示隐藏的图片。

Group:是开关组的概念,可以实现单选按钮功能。

On Value Changed(Boolean):类似于Button中的On Click,在这里添加事件,可以使得开关被点击的同时触发一些事件。

我们详细来一个Toogle组的案例

创建一个空物体,挂载Tiggle Group组件,之后创建两个Toggle组件,如下图:

image.png

然后将Toggle Group拖拽如两个Toggle组件的Group属性中,这时会如下图显示。

image.png

当勾选上Toggle Group中Allow Switch Off时,同一时间运行所有开关默认都是关闭的,不勾选则至少保留一个开关是开启的。

运行,就已经有了初步的效果,我们再添加点击事件,创建个TestToggle脚本,

public class TestToggle : MonoBehaviour
{
    public void ToggleChange(bool stage)
    {
        Debug.Log("注意一定要选择Dynamic bool下的这个方法名");
    }

    public void ToggleChange(GameObject toggleGameObject)
    {
        Toggle tempToggle = toggleGameObject.GetComponent<Toggle>();
        switch (toggleGameObject.name)
        {
            case "Toggle一":
                if (tempToggle.isOn)
                {
                    Debug.Log("点击了Toggle一" + "==" + tempToggle.isOn);
                }
                else
                {
                    Debug.Log("点击了Toggle一" + "==" + tempToggle.isOn);
                }
 
                break;
            case "Toggle二":
                if (tempToggle.isOn)
                {
                    Debug.Log("点击了Toggle一" + "==" + tempToggle.isOn);
                }
                else
                {
                    Debug.Log("点击了Toggle一" + "==" + tempToggle.isOn);
                }
 
                break;
            default:
                break;
        }
    }
}

将脚本挂载在Toggle Group中,然后给Toggle一和Toggle二添加事件,将Toogle Group拖拽进来,然后方法的传递参数是Toggle自身,如我们上图所示。

运行后

image.png

image.png

👉其他

📢作者:小空和小芝中的小空

📢转载说明-务必注明来源:芝麻粒儿 的个人主页 - 专栏 - 掘金 (juejin.cn)

📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。