首页 > 其他分享 >【Unity3D】UGUI之Slider

【Unity3D】UGUI之Slider

时间:2023-03-20 20:56:06浏览次数:50  
标签:Unity3D 控件 value Slider OnValueChanged 滑动 UGUI SliderController

1 Slider属性面板

​ 在 Hierarchy 窗口右键,选择 UI 列表里的 Slider 控件,即可创建 Slider 控件,选中创建的 Slider 控件,按键盘【T】键,可以调整 Slider 控件的大小和位置。

img

​ 创建 Slider 控件时,系统会自动为其创建 3 个 Image 子控件和 2 个 Empty 控件,如下:

img

  • Background:Image 控件,滑动条最底层的背景
  • Fill Area:Empty 控件,用于限制圆圈左边的填充部分区域
  • Fill:Image 控件,圆圈左边区域的背景
  • Handle Slide Area:Empty 控件,用于限制圆圈的区域
  • Handle:Image 控件,圆圈的背景

​ Slider 控件的属性面板如下:

img

  • Direction:滑动条朝向,取值有:Left To Right、Right To Left、Bottom To Top、Top To Bottom
  • Min Value:滑动条取值最小值
  • Max Value:滑动条取值最大值
  • Whole Numbers:是否取整数
  • Value:滑动条当前取值

2 Slider 注册事件

​ 点击 OnValueChanged 下面的 “+” 号,可以为选择框添加响应事件,可以添加多个事件。

1)注册已有组件的方法

​ 点击 OnValueChanged 下面的 “+” 号,将 Slider 下面的 Background 拖拽到 OnValueChanged 面板里,选择 GameObject.name,下方文本设置 "bg",如下:

img

​ 拖动滑动条,Background 会重命名为 “bg”,如下:

img

2)注册脚本组件里面的方法

​ 给 Slider 控件添加 SliderController 脚本组件如下:

​ SliderController.cs

using UnityEngine;
using UnityEngine.UI;

public class SliderController : MonoBehaviour {
	public void OnSlide1() {
		Debug.Log("Slide1");
	}
 
	public void OnSlide2(string msg) {
		Debug.Log("Slide2, msg=" + msg);
	}
 
	public void OnSlide3(float value) {
		Debug.Log("Slide3, value=" + value);
	}
}

​ 注意:待注册的方法,最多只能提供 1 个参数, 当参数为 float 类型时,入参表示滑动条的数值(value)。

​ 点击 OnValueChanged 下面的 “+” 号,将 SliderController 脚本组件拖拽到 OnValueChanged 面板里,选择 SliderController.OnSlide1 方法;再点击 OnValueChanged 下面的 “+” 号,将 SliderController 脚本组件拖拽到 OnValueChanged 面板里,选择 SliderController.OnSlide2 方法,其下方输入"xxxx";点击 OnValueChanged 下面的 “+” 号,将 SliderController 脚本组件拖拽到 OnValueChanged 面板里,选择 SliderController.OnSlide3 方法。如下:

img

​ 拖动滑动条,打印日志如下:

img

3)代码里注册事件

​ 给 Slider 控件添加 SliderController 脚本组件如下:

​ SliderController.cs

using UnityEngine;
using UnityEngine.UI;

public class SliderController : MonoBehaviour {

	private void Start() {
		Slider slider = GetComponent<Slider>();
		slider.onValueChanged.AddListener(OnValueChanged);
	}
 
	public void OnValueChanged(float value) {
		Debug.Log("OnValueChanged, value=" + value);
	}
}

​ 注意:AddListener 方法里只能添加入参为 float 类型的方法,可以添加多个方法。

​ 拖动滑动条,打印日志如下:

img

​ 声明:本文转自【Unity3D】UGUI之Slider

标签:Unity3D,控件,value,Slider,OnValueChanged,滑动,UGUI,SliderController
From: https://www.cnblogs.com/zhyan8/p/17234910.html

相关文章

  • 【Unity3D】UGUI之Toggle
    1Toggle属性面板​在Hierarchy窗口右键,选择UI列表里的Toggle控件,即可创建Toggle控件,选中创建的Toggle控件,按键盘【T】键,可以调整Toggle控件的大小和位置......
  • UI(一) - NGUI和UGUI比较
    UI是游戏项目中重要的组成部分,面对一个从零开始的项目,首先要确立的就是选用哪个UI系统作为主框架。===现在主流项目中基本上都是NGUI和UGUI,那么到底选哪个。我们先来做个比......
  • Unity3D 小案例技巧04------UI登录+场景切换
    编辑器使用Unity20211.创建UI---Canvas,修改名称为login设置Canvas的大小为1920*1080      2. 在login下创建UI----image  背景:bg给背景添加背......
  • Unity3D 小案例技巧01------小地图
    使用编辑器:Unity2021 1.先添加场地----Plane组件 2.在场地下添加主物体 3.在主物体下添加摄像机拍摄小地图场景----Camera 4.在外部添加UI---RawImage画板承载小......
  • UGUI 使UI布局生效,SetLayoutHorizontal()、SetLayoutVertical()
    ContentSizeFitter、GridLayoutGroup、HorizontalLayoutGroup、VerticalLayoutGroup、AspectRatioFitter等UGUI布局组件在某些情况下不能立即生效,这是可以调用SetLayoutHor......
  • UGUI OnTransformParentChanged()、OnBeforeTransformParentChanged()
     1.UIBehaviour.OnTransformParentChanged()当此脚本的父物体发生变化时(变化时)调用此函数。  2.UIBehaviour.OnBeforeTransformParentChanged()当此脚本的父物......
  • UGUI UIBehaviour.OnRectTransformDimensionsChange()
     1.当此脚本所在的RectTransform维度发生变化时调用的函数(在Awake方法之前会调用一次)。  2.维度发生变化也就是RectTransform下列属性发生变化:大小:Width、Heigh......
  • Unity3D 轴心点设置,修改物体轴心点
      1.添加一个空组件当做轴心点,再将上图中对应下拉选择为Povit2.最后将物体添加到轴心点下就可以将轴心点当做物体轴心点注意:一定是先调整好轴心点和物体之间的位置再......
  • Unity3D Vuforia 官网上传不了制作后的照片解决方案1.0
    本人亲测:1.在网上下载照片格式只能为JPG、PNG2.照片内的线条最好棱角分明,弧度多的图识别特别低,可以适当的编辑一下在上传例如:加边框、......
  • 使用Unity3D在PC+Android端截图保存,再添加到数据库中
    前提:1.使用的工具为Unity2021+VS2019+mysql8.02.使用的支持包         3.Unity组件  代码usingUnityEngine;usingSy......