按钮
制作按钮
在标题栏的地方依次点击NGUI–>Create. 然后选择一个sprite作为图片按钮 或者 选择一个Lable 作为文字按钮都可以。
然后选中这个创建的这个sprite 或者 lable 之后在去点击 NGUI–>Attach 选择 ButtonScript 添加按钮脚本。
没错Attach 这里全都是Ngui 的功能性脚本 可以随时造一个想要的UI
在然后继续添加脚本 依次点击 Component–>NGUI–>Internal–>Event Listener 制作脚本上面两步已经足够,但是我想要的是高级一点的按钮,所以加个这个 方便后面代码添加按钮的功能。
最后不要忘记添加BoxColider 不然按钮是不能点击的 这跟UGUI 还不太一样 好久没用 倒腾半天才知道为啥按钮不能点,尴尬脸。boxcolider 有时候需要手动调整一下大小。
调整大小的按钮在这里:
最终一个按钮就做好了,不过我做的是比较正常的那种,不是单独的 图片和文字按钮,
这是所有添加的组件:(只算带C#脚本图标的)
第一个组件没框是因为创建sprite自带的,最后一个是按钮监听的脚本,我自己写的 也是马上要说的,给按钮添加功能 就是说添加监听。
这里是按钮的监听代码,和上图一样挂上就可以用,功能是点一下就可以打印按钮名字;
void Start()
{
UIEventListener.Get(transform.gameObject).onClick = ButtonClick;
}
//括号的GameObject button 是必须加的 不然会报错
void ButtonClick(GameObject button)
{
Debug.Log(button.name);
}
至于为啥按钮监听的方法不能填别的,在UIEventListener上双击一下鼠标选中这个,然后按F12就可以看到,这个onClick是一个void无返回值的委托,并且这个委托在声明的时候还有个GameObject 的参数.。所以在写监听的方法时候必须是无返回值并且只有一个GameObject的方法。