供热设施网站搭建教程,计算机网站建设 是什么意思,wordpress首页随机推荐,wordpress新文章数据库一.Slider对象的结构 对象介绍Slider附加Slider组件Background背景Fill Area填充范围Fill填充对象Handle Slider Area滑块移动范围Handle滑块
二.Slider组件属性 属性说明Fill Rect关联填充对象Handle Rect关联滑块对象Direction设置方向Min Value最大取值Max Value最小取值Wh…一.Slider对象的结构 对象介绍Slider附加Slider组件Background背景Fill Area填充范围Fill填充对象Handle Slider Area滑块移动范围Handle滑块
二.Slider组件属性 属性说明Fill Rect关联填充对象Handle Rect关联滑块对象Direction设置方向Min Value最大取值Max Value最小取值Whole Numbers是否取整Value当前取值 三.事件监听
3.1 可视化监听 3.2 代码监听
public class CSlider : MonoBehaviour
{private Slider _slider;void Start(){_slider GameObject.Find(Slider).GetComponentSlider();_slider.onValueChanged.AddListener(delegate (float value){sliderOnValueChanged(value);});}public void sliderOnValueChanged(float value){Debug.Log(value: value);}
}
四.填充内容占满背景
首先我们进一步的了解默认的Slider对象先将滑块隐藏在最小值和最大值之间拖动Value 可以看到Value最小时填充图片没有消失Value最大时填充范围没有覆盖背景图。
以下设置可以解决这个问题
4.1.把Fill放到Slider下Fill Area删了 4.2 将Fill的宽高设置为和父对象一致 4.3 把Fill的Image组件的ImageType属性设置为Filled把Fill Method设置为Horizontal 将Background和Fill的图片设置后改变Value的值可以看到Value最小时填充消失Value最大时覆盖背景 五.Slider的应用
总体来说Slider很常用游戏中血条进度条设置百分比数值等地方都有应用。可按是否有交互进行分类无交互的统称为进度条(包括血条经验条等肯定没有滑块)有交互的称为滑动条(可能有滑块)
5.1 进度条
某游戏的进度条UI 通过代码设置进度条UI的简单举例
public class CSlider : MonoBehaviour
{private Slider _slider;private TMP_Text _text1;private float time 0;void Start(){_text1 GameObject.Find(Slider1/Text1).GetComponentTMP_Text();_slider GameObject.Find(Slider1).GetComponentSlider();_slider.minValue 0;_slider.maxValue 100;_slider.wholeNumbers true;setSliderValue(20);}void Update(){time Time.deltaTime;if(3 time){setSliderValue(50);}Debug.Log(time);}public void setSliderValue(float value){_slider.value value;_text1.SetText(value / _slider.maxValue);}
}
运行效果 5.2 滑动条
某游戏滑动条UI 代码示例
public class CSlider : MonoBehaviour
{private Slider _slider;private TMP_Text _text1;private float time 0;void Start(){_text1 GameObject.Find(Slider1/Text1).GetComponentTMP_Text();_slider GameObject.Find(Slider1).GetComponentSlider();_slider.minValue 0;_slider.maxValue 100;_slider.wholeNumbers true;_slider.onValueChanged.AddListener(delegate (float value){Debug.Log(value);_text1.SetText(value / _slider.maxValue);});setSliderValue(20);}public void setSliderValue(float value){_slider.value value;_text1.SetText(value / _slider.maxValue);}
}
运行效果