untiy版本为2018.4
首先可以在hierarchy中右键选择UI,新建一个Button,unity会自动生成Canvas(画布)及下方的EventSystem
如图↑,对于canvas画布,对其的解释是为UI提供区域,(并在inspector中隐藏了transform),canvas是一套独立的系统,集成了非常多的方法。在其canvas scaler中有UI Scale mode选项,其中的scale with screen size即是让UI界面自适应屏幕大小,这样无论在什么分辨率下打开UI布局相对屏幕位置都不会发生改变,如图
。
接下来,首先导入要给图标的图片,放置于Assets中,然后点击图片对其进行编辑,
在texture type中选择sprite 2d and ui,这样之后才能将图片添加到按钮的souce image中。
回到button中来,我们可以点击souce image来选择刚才的图片,或者直接将图片拖拽至其中,由于图片和button本身的尺寸不对应,我们可以在
中调整button的大小来让图片正常显示。
在button的inseprctor中,有如下
选项,其中highlighted color即为鼠标在按钮上时候的高亮颜色,pressed color即为按钮按下后的颜色,适当调整以显示按钮被按下的视觉提示。
随后我们新建一个C sharp脚本,在VS中打开,代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class buttonController : MonoBehaviour
{
public Material originmaterial;
public Material materialReplace;
public GameObject go;
bool clickBool =true;
//实现Button点击开关灯效果
public void buttonClick()
{
if(clickBool)
{
go.GetComponent<Renderer>().material = materialReplace;
clickBool = false ;
}else
{
go.GetComponent<Renderer>().material = originmaterial;
clickBool = true;
}
}
}
随后,将脚本与Eventsystem绑定,并在其component中绑定对应材质及物体
随后,点击button,修改如下
(注意成功绑定后下拉菜单才会出现自己写的函数块。)
最终实现button开关模拟开关灯的效果如下: