一、用脚本操作常用UI控件
新建一个3D工程,在默认Scene中新建UI控件。控件实际上就是一个游戏物体,在Hierarchy窗口空白处点击鼠标右键打开菜单,在菜单中选择UI,里面有很多可供选择的控件。



(1)Canvas与EventSystem简介

(2)界面比例问题


(3)搭建UI测试场景
Tip:

-01-02

-03

-04

-05

这样,一个简易的UI界面就搭建好了。
Tip:
我们在场景中建好的画布尺寸和游戏尺可能不同,所以我们想让画布尺寸随着屏幕大小变化而变化,需要做出以下修改:







代码:
- using UnityEngine;
- using UnityEngine.UI;//UI脚本要包含次命名空间
-
- public class NewBehaviourScript : MonoBehaviour
- {
- Image image;
- //可以在编译器中指定另一张图片
- public Sprite otherSprite;
-
- float fillAmount = 0;
-
- void Start()
- {
- image = GetComponent<Image>();
- //直接将图片换成另一张图片
- if (otherSprite!=null)
- {
- image.sprite = otherSprite;
- }
- //将图片类型改为Filled,360°填充,方便旋转动画
- image.type = Image.Type.Filled;
- image.fillMethod = Image.FillMethod.Radial360;
- }
- void Update()
- {
- //制作一个旋转显示的动画效果,直线效果也类似
- //取值0~1
- image.fillAmount = fillAmount;
- fillAmount += 0.01f;
- if (fillAmount > 10)
- {
- fillAmount = 0;
- }
- }
- }
演示效果:
Tip:



这是一段<color=#ff0000ff>富<b>文</b><size=50>本</size></color>

按钮是Unity中常用的控件:


(1)按钮外观切换的方法

(2)按钮是组合的控件

(3)OnClick(点击)事件


- using UnityEngine;
-
- public class ButtoTest : MonoBehaviour
- {
- public void TestButtonClick(int param)
- {
- Debug.Log("clicked it");
- Debug.Log("事件参数为:" + param);
- }
- }



Tip:


- using UnityEngine;
- using UnityEngine.UI;
-
- public class ToggleTest : MonoBehaviour
- {
- Toggle toggle;
- void Start()
- {
- toggle = GetComponent<Toggle>();
- //初始不勾选
- toggle.isOn = false;
- }
- public void TestToggleChange(bool b)
- {
- if(b)
- {
- Debug.Log("勾选了单选框");
- }
- else
- {
- Debug.Log("取消勾选单选框");
- }
- }
- }







- using UnityEngine;
- using UnityEngine.UI;
-
- public class SliderTest : MonoBehaviour
- {
- //所控制的图片
- public Image image;
- //滑动条组件
- Slider slider;
- void Start()
- {
- slider = GetComponent<Slider>();
- slider.minValue = 0;
- slider.maxValue = 1;
- //将图片类型改为Filled,360填充
- image.type = Image.Type.Filled;
- image.fillMethod = Image.FillMethod.Radial360;
- }
- void Update()
- {
- //每一帧都让滑动条的值决定图片的填充大小
- image.fillAmount = slider.value;
- }
- }








Tip:




- public void OnScrollChange(Vector2 pos)
- {
- Debug.Log("滚动位置:"+pos)
- }


Tip:












- using UnityEngine;
- using UnityEngine.UI;
-
- public class NewBehaviourScript : MonoBehaviour
- {
- void Start()
- {
- Button btn;
- //获取三个子按钮,分别添加OnClick事件
- btn = transform.GetChild(0).GetComponent<Button>();
- btn.onClick.AddListener(Btn1);
- //用lambda表达式也是一样的
- btn = transform.GetChild(1).GetComponent<Button>();
- btn.onClick.AddListener(() => { Debug.Log("按钮2"); });
-
- btn = transform.GetChild(2).GetComponent<Button>();
- btn.onClick.AddListener(Btn3);
- }
-
- void Btn1()
- {
- Debug.Log("按钮1");
- }
-
- void Btn3()
- {
- Debug.Log("按钮3");
- Debug.Log("删除按钮3的响应函数");
- Button btn = transform.GetChild(2).GetComponent<Button>();
- btn.onClick.RemoveAllListeners();
- }
- }














(1)准备我的素材

(2)进行素材的初始化设置

打开 Window ----2D---Sprite Editor 打开Sprite Editor窗口,(然后Project窗口选中图片)


接下来进行拉伸可以看到图片圆角部分会非常顺滑。

(1)界面分区

搭建顶部控件
保持缩放比例

