NGUI-音量条-UISlider

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

解决方案:主要用到了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 initialization
	public 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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值