UGUI 按钮事件案例
【摘要】
UGUI 点击按钮切换图片案例:
主要方法:
动态为按钮注册方法
通过方法获取点击按钮名称(知道那个按钮被点击)
切换图片的方法
代码挂到Canvas(画布)上:并且拖拽为公开属性赋值
左边的按钮点击事件,使用了代码动态赋值,,
右边按钮可以同步操作,我这里使用属性面板赋值了,,步骤(...
UGUI 点击按钮切换图片案例:
主要方法: 动态为按钮注册方法
通过方法获取点击按钮名称(知道那个按钮被点击)
切换图片的方法
代码挂到Canvas(画布)上:并且拖拽为公开属性赋值
左边的按钮点击事件,使用了代码动态赋值,,
右边按钮可以同步操作,我这里使用属性面板赋值了,,步骤(点击加号,把挂载代码的游戏物体拖拽赋值,然后右面的方法选择自己写的方法名,,,点击按钮的时候方法就会执行了)
编写如下代码:即可实现点击按钮图片顺序切换
-
using UnityEngine;
-
using UnityEngine.EventSystems;
-
using UnityEngine.UI;
-
-
public class SwapImage : MonoBehaviour {
-
-
public Image bgimage; //默认显示的背景图片 (注意类型)
-
public Sprite[] imagearr; //要切换的图片数组
-
-
private string btn_name; //点击的按钮名称
-
private int i=0; //图片数组的索引
-
-
public Button btn_left; //声明左面按钮
-
-
void Start()
-
{
-
//找到左边按钮并且获取其身上组件
-
btn_left = this.gameObject.transform.Find("Button_Left").GetComponent<Button>();
-
//为onclick注册方法
-
btn_left.onClick.AddListener(Swap);
-
}
-
-
//注册到按钮上的切换图片的方法
-
public void Swap()
-
{
-
//获取点击按钮的名称
-
btn_name = EventSystem.current.currentSelectedGameObject.name;
-
-
if (btn_name == "Button_Left") //点击名称为Button_Left的按钮
-
{
-
-
//如果当前图片是图片数组的第一张,就切换到最后一张
-
if (i < 0) { i = imagearr.Length - 1; }
-
//切换图片
-
bgimage.overrideSprite = imagearr[i--];
-
//Debug.Log(i);
-
}
-
else //点击名称为Button_Right的按钮
-
{
-
-
if (i > imagearr.Length - 1) {i = 0; }
-
//切换图片
-
bgimage.overrideSprite = imagearr[i++];
-
}
-
-
}
-
}
-
//-------------另一种方式-----------------------
-
using UnityEngine;
-
using UnityEngine.UI;
-
-
public class UIShopping : MonoBehaviour {
-
-
//需要更换的图片
-
public Image Hero;
-
-
//英雄图片数组
-
public Sprite[] imagearr;
-
//图片数组的索引
-
private int i;
-
-
//声明按钮引用
-
public Button btn_left;
-
public Button btn_right;
-
-
// Use this for initialization
-
void Start () {
-
//找到左边按钮并且获取其身上组件
-
btn_left = GameObject.Find("Left_Btn").GetComponent<Button>();
-
//为onclick注册方法
-
btn_left.onClick.AddListener(SwapLeft);
-
//右面同理
-
btn_right = GameObject.Find("Right_Btn").GetComponent<Button>();
-
btn_right.onClick.AddListener(SwapRight);
-
}
-
-
public void SwapLeft()
-
{
-
-
//如果当前图片是图片数组的第一张,就切换到最后一张
-
if (i < 0) { i = imagearr.Length - 1; }
-
//切换图片
-
Hero.overrideSprite = imagearr[i--];
-
}
-
public void SwapRight() {
-
-
if (i > imagearr.Length - 1) { i = 0; }
-
//切换图片
-
Hero.overrideSprite = imagearr[i++];
-
}
-
-
}
文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/77920904
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)