前言
这里不一一罗列属性了,而是用到什么学什么
另外:使用UGUI的对象组件就要引用命名空间
using UnityEngine.UI;//UGUI命名空间
这里创建一个脚本,拖到CanvasUI对象上使用
Sprite图片制作
因为UGUI没有图集,所以ImageUI的图需要自己做UI图片Sprite,才能拖进Source Image里(包括Raw Image的)。
在网上下一个图片拖入工程,点击图片,查看检视面板
选则Sprite后要点击Apply一下
脚本代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//UGUI命名空间
public class UGUITest : MonoBehaviour {
private Text _text;
private Image _image;
private RawImage _rawImage;
private Button _button;
private Toggle _toggle;
private Slider _slider;
private Dropdown _dropdown;
private InputField _inputField;
void Awake(){
_text = transform.Find ("Text").GetComponent<Text> ();
_text.text = "土鳖";
_image = transform.Find ("Image").GetComponent<Image> ();
_image.sprite = Resources.Load ("A",typeof(Sprite)) as Sprite;
_rawImage = transform.Find ("RawImage").GetComponent<RawImage> ();
_rawImage.texture = Resources.Load ("B", typeof(Texture)) as Texture;
_button = transform.Find ("Button").GetComponent<Button> ();
_button.onClick.AddListener (buttonOnClick);
_toggle = transform.Find ("Toggle").GetComponent<Toggle> ();
_toggle.onValueChanged.AddListener (toggleClick);
_slider = transform.Find ("Slider").GetComponent<Slider> ();
_slider.onValueChanged.AddListener (sliderValue);
_dropdown = transform.Find ("Dropdown").GetComponent<Dropdown> ();
_dropdown.onValueChanged.AddListener (dropdownSelect);
_inputField = transform.Find ("InputField").GetComponent<InputField> ();
}
//以拖拽的方式给Button添加点击事件
public void BtnClick(){
Debug.Log("拖拽方式事件的触发");
}
//代码方式给Button添加点击事件
private void buttonOnClick(){
Debug.Log ("代码添加点击事件");
}
private void toggleClick(bool b) {
Debug.Log ("点击了");//b就是toggle.isOn
Debug.Log (b);
Debug.Log (_toggle.isOn);
if (_toggle.isOn) {
Debug.Log ("开启音乐");
} else {
Debug.Log ("关闭音乐");
}
}
private void sliderValue(float f){
Debug.Log (f);//f就是slider.value
Debug.Log (_slider.value);
}
//下拉菜单
private void dropdownSelect(int index){
Debug.Log (index);// 下标从0开始从上到下递增
//配合文本使用
_text.text = _dropdown.options [index].text;
}
//输入框,手动添加事件
public void InputFlieChange(){
Debug.Log ("输入了..."+_inputField.text);
//配合文本框使用
_text.text = _inputField.text;
}
}
细节注意
- 图片的获取方式和NGUI不同
UGUI 需要使用代码获取,NGUI是直接赋值图集的图片名字
_image.sprite = Resources.Load ("A",typeof(Sprite)) as Sprite;
_rawImage.texture = Resources.Load ("B", typeof(Texture)) as Texture;
- 添加事件检测有2种
一种是手段拖入
一种是在脚本上代码添加
注意不同的事件有不用的参数要求,如上图的InputFiled输入的事件方法参数类型是string
这里的是DropDownUI物体对象的方法参数是int
_dropdown.onValueChanged.AddListener (dropdownSelect);
private void dropdownSelect(int index){
Debug.Log (index);// 下标从0开始从上到下递增
//配合文本使用
_text.text = _dropdown.options [index].text;
}