NGUI-音量条-UISlider

来源:互联网 发布:任意游软件下载 编辑:程序博客网 时间:2024/05/12 17:32

情景一、音量条制作,滑动滑块声音变大或变小

解决方案:主要用到了UISlider

Step0:首先需要场景中播放声音可以参考我的文章《Unity3D-场景声音播放

Step1:创建一个Sprite名为VolumeSlider,创建子Sprite:Background(作为UISlider的背景)、Foreground(形象显示音量大小)、Thumb(滑块)和1个子Lable:Number(用来在音量条的右侧音量百分数),其中VolumeSlider的Dimensions设为350X30,Thumb的尺寸设置为:30X60;

注意:VolumeSlider不能是空物体,因为空物体没有尺寸,下文需要设置Background,Foreground,Number的Anchors(锚点),使它们依据父物体的尺寸来确定自身的尺寸,故不能选没尺寸的空物体,必须是Sprite或加了UISprite的空物体。

Step2:给VolumeSlider添加组件BoxCollider,并且IsTrigger打√,UISprite的BoxCollider auto-adjust to match打√(保证BoxCollider的尺寸和Sprite的尺寸相同),添加脚本UISlider并设置如下。



Step3:为Background,Foreground,Thumb设置Atlas图片,VolumeSlider的Depth设为0,Background的Depth设为1,Foreground和Number的Depth设为2,Thumb的Depth设为3。

Step4:设置Background,Foreground,Number,Thumb(可以不设置)的Anchors(锚点),以Foreground为例:

Left一行的意思是:Foreground的Dimensions的左边界是以VolumeSlider的左边界(可变)为基准向右边为5的距离处(向右为正,向上为正);

Right一行的意思是:Foreground的Dimensions的右边界是以VolumeSlider的右边界(可变)为基准向左边为5的距离处;

Bottom一行的意思是:Foreground的Dimensions的底边界是以VolumeSlider的底边界(可变)为基准向上边为5的距离处;

Top一行的意思是:Foreground的Dimensions的上边界是以VolumeSlider的上边界(可变)为基准向下边为5的距离处;

设置完毕后会看到Foreground的大小相应变为340X20;

在设置Thumb的锚点Anchors时,Type选择Advanced


Step5:此时可以改变VolumeSlider的UISlider的Value可看到初始效果,下面将将此Value和Audio的AudioSource的Volume进行关联。

Step6:Audio的脚本改为:

using UnityEngine;using System.Collections;public class Audio : MonoBehaviour {// Use this for initializationpublic GameObject VolumeSlider;//记得此处VolumeSlider要从Hierarchy拖到Inspector赋值void Start () {GameObject [] audioes = GameObject.FindGameObjectsWithTag ("Audio");if (audioes.Length == 2) {Destroy (this.gameObject);}DontDestroyOnLoad (this.gameObject);}public void SetVolume () {//GameObject audio = GameObject.FindGameObjectWithTag ("Audio");float volume = VolumeSlider.GetComponent <UISlider>().value;this.gameObject.GetComponent <AudioSource>().volume = volume;}}
Step7:设置VolumeSlider的UISlider

此方案完毕.

        欢迎大家批评指正,在此多谢各位不吝赐教!







0 0
原创粉丝点击