NGUI之Slider,最简单的方法做进度条。

既然标题是最简单的,那么很多东西就不需要我们自己做了,使用的是NGUI的示例,只针对初学者,接下来让我们来做一个最简单游戏设置里的声音控制。

1、导入NGUI;

2、找到NGUI的Menu示例Demo,文件夹为NGUI\Examples\Scenes 打开Example 3 - Menu场景

3、在Hierarchy视图中找到Option - Voice游戏对象【灰色的active没有启用的对象】

4、复制改游戏对象,并在你的项目的Hierarchy视图中粘贴到合适的位置,并将active启用(或者在你要进入该设置时用代码控制启用也可以)。

5、修改下Slider、UILabel等的名字和内容,加上一个现实百分比的Label

基本效果已经出来了。

如要改成自己的样式,则可以更改下Slider的前景的Sprite,背景Sprite,游标Sprite等设置即可

6、给Slider的游标GameObject绑定滑动的事件。

把要绑定事件的脚本挂载到Slider上(或Slider的游标GameObject)

找到游标的游戏对象

var slider_Voice = GameObject.Find("UI Root/gameSetBG/Option_Voice/Slider_Voice/Thumb");

在Awake事件中使用UIEventListener进行绑定滑动事件,不明白这么绑定的可以参考我的前一篇博文 NGUI事件监听之UIEventListener的使用

    void Awake ()
    {
        UIEventListener.Get(slider_Voice).onPress += SetBGGSound;//滑动事件
    }

写好滑动事件触发的方法

//设置背景音乐
    public void SetBGGSound(GameObject go, bool state)
    {
        UILabel soundPerLabel = soundPer.GetComponent<UILabel>();//声音百分比的Label
        UISlider soundSlider = slider_Voice.GetComponentInParent<UISlider>();
        if (soundSlider.value == 0f)
        {
            soundPerLabel.text = "静音";
        }
        else if (soundSlider.value == 1f)
        {
            soundPerLabel.text = "100%";
        }
        else
        {
            soundPerLabel.text = (soundSlider.value * 100).ToString("F0") + "%";
        }
        UICamera.GetComponent<AudioSource>().volume = soundSlider.value;//设置背景音乐的声音
    }

因为我是把背景音乐直接放在了UICamera,如在其他游戏对象上则找到改游戏对象获取AudioSource组件进行设置音量。

时间: 2024-10-01 04:55:58

NGUI之Slider,最简单的方法做进度条。的相关文章

jQuery简单实用的轻量级进度条插件

jQMeter是一款简单实用的轻量级进度条jQuery插件,它可以显示为水平或垂直进度条,进度条加载时带有动画特效,你只需要简单的传入一些参数到jQMeter对象的构造函数中就可以完成你想要的进度条效果. 该进度条插件的构造函数中允许你定义进度条的宽度.高度.背景色.进度条颜色等等参数,通过这些参数你可以构造自己的进度条样式. 效果演示:http://www.htmleaf.com/Demo/201504131672.html 下载地址:http://www.htmleaf.com/jQuery

做进度条 根据自己的数据显示进度

做了很多种方法 1: 线程 thread的方法 2: backGroundWorker的方法 3: 自定义线程类 4: 做一个进度条的窗体  通过自定义设置做(最方便快捷) public partial class waitingProcessbar : Form { public waitingProcessbar() { InitializeComponent(); } /// <summary> /// 设定百分比 /// </summary> private int per

使用ajax实现简单的带百分比进度条

需求:当进行文件长传保存等操作时,能在页面显示一个带百分比的进度条,给用户一个好的交互体验 实现步骤 JSP页面 1.添加table标签 <table id="load" width="700" border="0" align="center" bgcolor="#FAFAFA" cellpadding="0" cellspacing="0" borderco

做进度条

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

超简单CSS3水平动态进度条+小圆球+背景色渐变

实现的的效果图如下:效果是动态加载的 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="

最简单的android自定义进度条样式

一.自定义圆形进度条样式 1.在安卓项目drawable目录下新建一个xml文件如下:<?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:pivotX="50%" android:pivotY="50%" andro

原生js做一个简单的进度条

用原生js做进度条,布局非常简单,一个盒子里放一个span标签,让它的宽度为0,并且转成块元素. 主要用定时器动态增加span的宽度,并且当它的宽度大于父级盒子的宽度的时候停止 效果如下: 一 css如下: *{ margin: 0; padding: 0; } #box{ width: 500px; height: 30px; margin: 50px auto; overflow: hidden; border: 1px solid #CCCCCC; border-radius: 15px;

很多时候运行tomcat 的时候总是会提示tomcat 的端口被占用 但是任务管理器里面还找不到是哪个端口被占用了 因此很多人就重新配置tomcat 或者去修改tomcat的端口号 ,其实这么做太麻烦了 ,小弟在这里告诉你一个非常简单的方法。 1.在开始菜单中选择运行 然后输入cmd 进入DOS界面。显示如下: 2.在Dos窗口中输入netstat -ano|findst

很多时候运行tomcat 的时候总是会提示tomcat 的端口被占用 但是任务管理器里面还找不到是哪个端口被占用了 因此很多人就重新配置tomcat  或者去修改tomcat的端口号 ,其实这么做太麻烦了 ,小弟在这里告诉你一个非常简单的方法. 1.在开始菜单中选择运行  然后输入cmd  进入DOS界面.显示如下: 2.在Dos窗口中输入netstat   -ano|findstr  8080(注意的 我的Tomcat 的断口号 是8080 你的断口号是多少就写多少) 输入完成后回车 会弹出下

TabHost 简单使用方法

package com.google.tabhost; import android.app.TabActivity; import android.os.Bundle; import android.view.LayoutInflater; import android.widget.TabHost; public class HelloTabHost extends TabActivity { /** Called when the activity is first created. */