Unity中Slider组件的学习

我们下面的一个例子就是通过控制Cube的大小来认识一下Slider 组件
首先创建一个Slider组件,你在Slider下面可以看到三个子控件,Background就是图中绿色的部分,Fill Area–>Fill 就是红色的部分,粉色的就是移动的小圆滑块。

这里写图片描述

选中Slider 我们在Inspector面板中,有很多属性:
1.Derection是用来设置滑块的方向的,我们次案例中的滑块的方向是从左到右的。
Left To Right 从左到右
Right To Left 从右到左
Bottom To Top 从下到上
Top To Bottom 从上到下

2.MinValue 和MaxValue
MinValue 和MaxValue 是控制滑块移动的范围
在我们这个案例中,我们是从1-5的,也就是说MinValue 是1,MaxValue 是100

3.WholeNumber
WholeNumber用来控制滑块值是否限定为整数数值

4.Value
Value 就是滑块当前的数值

【注】:在On Value Change 事件被调用的时候
每当滑块的数值由于拖动被改变时调用,float类型的值会被传递无论WholeNumber属性是否启用。

下面来看一我的程序吧

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class SliderDemo : MonoBehaviour {
    public GameObject cube;
    public Slider slider;
	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
	
	}

    public void CubeChangeScale() {
        cube.transform.localScale = new Vector3(slider.value, slider.value, slider.value);
    }
}

历史文章目录连接
https://blog.csdn.net/yy763496668/article/details/113117040
【关注、点赞,收藏】
关注公众号,您将第一时间收到文章更新
QQ群号:1056320746
微信公众号:猿媛大本营
在这里插入图片描述

Unity中,Slider组件的Value属性值被修改后,界面显示未及时更新的问题通常可以通过以下几种方法解决: 1. **使用`Update`方法手动刷新UI**: 在每一帧调用`Update`方法时,手动更新Slider的值。可以通过`OnValueChanged`事件来检测Value的变化,并在变化时更新UI。 2. **使用协程(Coroutine)**: 使用协程在特定的时间间隔内更新UI。可以在Value属性改变时启动一个协程,协程中不断检查Value属性的值,并在需要时更新UI。 3. **使用`OnGUI`方法**: `OnGUI`方法可以在每一帧中绘制UI。通过在`OnGUI`方法中检查Slider的Value属性并更新UI,可以确保UI显示是最新的。 4. **调用`Refresh`方法**: 有些UI框架或插件提供了`Refresh`方法,可以手动刷新UI。可以在Value属性改变时调用`Refresh`方法来更新UI。 5. **使用事件驱动**: 通过订阅Slider的ValueChanged事件,在事件处理程序中更新UI。这样可以确保每次Value属性改变时,UI都会及时更新。 以下是一个示例代码,展示了如何通过事件驱动的方法来解决这个问题: ```csharp using UnityEngine; using UnityEngine.UI; public class SliderUpdater : MonoBehaviour { public Slider slider; public Text valueText; void Start() { if (slider != null) { slider.onValueChanged.AddListener(OnSliderValueChanged); } } void OnSliderValueChanged(float value) { if (valueText != null) { valueText.text = value.ToString("F2"); } } void OnDestroy() { if (slider != null) { slider.onValueChanged.RemoveListener(OnSliderValueChanged); } } } ``` 在这个示例中,`SliderUpdater`类订阅了Slider的`onValueChanged`事件。每当Slider的Value属性改变时,`OnSliderValueChanged`方法就会被调用,从而更新UI中的Text组件
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yy763496668

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值