Unity3D MineCraft 我的世界 UGUI屏幕自适应以及按钮事件传输

来源:互联网 发布:c语言socket编程 编辑:程序博客网 时间:2024/05/05 09:33

Unity3D MineCraft 我的世界 UGUI屏幕自适应以及按钮事件传输


最近制作的内容大都在内部,没有明显的视觉变化,所以没有很多的更新。不过这两天学习到了如何使用UGUI,个人感觉比NGUI要好用,所以到这里来和大家分享一些比较实用且关键的内容。

一:UGUI的屏幕自适应。


实用UGUI,就是先要创建CANVAS,画布。画布在视觉上是不可见的,但是在逻辑上就和它的名字一样,是张画布,所有要画的UI控件都必须在这张画布上,否则UNITY会很尴尬,不知道怎么操作。创建画布以后,要让UI自适应屏幕的大小,也就是UI控件可以自动调整相对位置,就如下图这样选择即可:

我这里说得比较简单,但是用过NGUI的人一看就明白是怎么回事了,如果还不清楚,请大家留言,我可以做一期视频给大家看看。

另外一个就是button点击事件如何在自己写的代码里面获得。我采用的是最简单的方法。

首先你在代码里面申明public的gameobject

    public GameObject TxtStamina;    public GameObject ButtonRock;    public GameObject ButtonSoil;    public GameObject ButtonWood;    public GameObject ButtonLeaf;    public GameObject ButtonSand;

然后,在编辑器里面讲UI的按钮引入:

然后申明一个函数,注意函数的参数,必须要有gameobject的引入:

    void ButtonOnClick(GameObject go)    {        switch (go.name)        {            case "ButtonRock":                CurrentBlockIndex = 0;                break;            case "ButtonSoil":                CurrentBlockIndex = 1;                break;            case "ButtonWood":                CurrentBlockIndex = 2;                break;            case "ButtonLeaf":                CurrentBlockIndex = 3;                break;            case "ButtonSand":                CurrentBlockIndex = 4;                break;            default:                CurrentBlockIndex = 0;                break;        }    }

再然后,在类的初始化或者start函数里面初始化事件申明:

        ButtonRock.GetComponent<Button>().onClick.AddListener(delegate () { this.ButtonOnClick(ButtonRock); });        ButtonSoil.GetComponent<Button>().onClick.AddListener(delegate () { this.ButtonOnClick(ButtonSoil); });        ButtonWood.GetComponent<Button>().onClick.AddListener(delegate () { this.ButtonOnClick(ButtonWood); });        ButtonLeaf.GetComponent<Button>().onClick.AddListener(delegate () { this.ButtonOnClick(ButtonLeaf); });        ButtonSand.GetComponent<Button>().onClick.AddListener(delegate () { this.ButtonOnClick(ButtonSand); });

如果编译不通过,则加入引用:

using UnityEngine.UI;using UnityEngine.Events;

这样,当这些按钮按下后,就会去调用ButtonOnClick这个函数,并且将按钮自己当参数传进去。

0 0
原创粉丝点击