C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > Unity技术Button按钮

Unity技术手册之Button按钮使用实例详解

作者:芝麻粒儿

这篇文章主要为大家介绍了Unity技术手册之Button按钮使用实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

👉实践过程

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

创建Button按钮很简单,在Hierachy面板中直接右键找到UI-Button即可。创建后我们可以看到Button其实就是挂载了一个Image组件一个Button组件,顺便携带一个Text子物体。

其中Image组件的属性,小空之间有单独介绍过,在这不赘述了。我们详细看Button组件中的内容,注意,所有参数是运行时生效

Interactable:表示是否可交互,取消勾选Button就不能触发点击了,并且设置的颜色或精灵等都不会生效。

Transition:设置Button的过度效果,有四个设置选项(下方有图,重点属性)无、颜色过度、精灵图切换过度、动画过度。

Color Tint-表示颜色过度

Sprite Swap-表示精灵过度

Animation-动画

需要点击【Auto Generate Animation】创建动画控制器,然后给上面的这几个动画文件录制动画(如缩放等)

Visualize:是否可视化。打开后会在Scene中显示出每个UI控件之间的辅助顺序,和Gizmos辅助很相似,但不受Gizmos控制。

Navigation :控件间导航,一般我们设置为None,该属性控制焦点自动为下一个,比如多个按钮,并且你没在看是范围内,虽然无法鼠标点击但是可以键盘空格键触发。

On Click() :给按钮添加响应事件(将脚本挂载在该Button上,拖拽Button到这,即可从下拉中找到脚本中public类型的方法,指定就表示点击触发该方法),除了这还有代码动态添加的方式(下方详细)。 还有图中的Runtime Only表示运行后才会响应事件,还有两个选项,一个是off从不响应,一个是Editor And Runtime表示即使没运行也能响应,默认即可。

public class TestClick : MonoBehaviour
    {
        private void Start()
        {
            Button btn = gameObject.GetComponent<Button>();
            //添加事件写法一-只能添加方法名 无法传递参数
            // btn.onClick.AddListener(methodA);
            //添加事件写法二 -可以传递参数
            // btn.onClick.AddListener(delegate { methodB(); });
            // btn.onClick.AddListener(() => { methodA();});
            //方式一添加多个方法
            // btn.onClick.AddListener(methodA);
            // btn.onClick.AddListener(methodB);
            //方式二添加多个方法
            // btn.onClick.AddListener(method);
            //下方是简易封装的一种写法,和Android中的类似
            List<string> btnsName = new List<string>();
            btnsName.Add("想要添加事件的");
            btnsName.Add("场景中");
            btnsName.Add("按钮的名字");
            foreach (string btnName in btnsName)
            {
                GameObject btnObj = GameObject.Find(btnName);
                Button btnTemp = btnObj.GetComponent<Button>();
                btnTemp.onClick.AddListener(delegate() { this.OnClick(btnObj); });
                //或者:
                //btnTemp.onClick.AddListener(() => { OnClick(btnObj); });
            }
        }
        public void OnClick(GameObject sender)
        {
            switch (sender.name)
            {
                case "想要添加事件的":
                    Debug.Log("想要添加事件的");
                    break;
                case "场景中":
                    Debug.Log("场景中");
                    break;
                case "按钮的名字":
                    Debug.Log("按钮的名字");
                    break;
                default:
                    Debug.Log("none");
                    break;
            }
        }
        private void method()
        {
            methodA();
            methodB();
        }
        private void methodA(String param)
        {
            Debug.Log("事件A-方法A-携带参数" + param);
        }
        private void methodA()
        {
            Debug.Log("事件A-方法A");
        }
        private void methodB()
        {
            Debug.Log("事件B-方法B");
        }
}

以上就是Unity技术手册之Button按钮使用实例详解的详细内容,更多关于Unity技术Button按钮的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文