unity3d 脚本播放音效电梯的音效和显示屏怎么做

unity3D竖版菜单界面,以及音效音乐的分别控制 - CSDN博客
unity3D竖版菜单界面,以及音效音乐的分别控制
/////////////////////////////
/////////////by&&&&& XBW///////////////
////////////环境 Unity4.6.1/////////
先上图看效果,UI并不好,就是粗略的打个框架
/////////////////////////////////////////////////////////////
//此菜单的思路
/////////////////////////////////////////////////////////////
//进入游戏,游戏介绍,退出游戏没什么特别的,只是用了按钮事件,
//来说一下顶部的菜单栏,这个呢可以点击右箭头使几个按钮显示出来,类似抽屉一样
//实现思路:点击右箭头,向右依次显示出几个按钮,同时右箭头变为左箭头
//右上角的声音控制,点一下为整个游戏静音,这是两张声音UI
//一张有音量的,一张没有音量的,在设置中,当音乐与音效都不为关闭时,右上角显示有音量图,
//反之,显示没有音量的图;
//点击设置以及提示按钮,弹出菜单凸显出来,背景变暗,背景上的按钮失效
//实现思路:当点击设置按钮时,我们在GUI函数最顶端显示一张全屏的按钮,同时使用皮肤,
//皮肤的按钮按下与悬停的图案删除,这样我们点击时就不会闪烁了,同时这个按钮没有命令
//发现GUI的覆盖关系有点乱,可能是自己不够理解,之前把全屏按钮写在了GUI函数的末尾,
//结果背景按钮仍然起作用,后来移到最顶端反而使背景按钮失效,不知道谁遮挡了谁;
//设置菜单里的声音的开关也是,什么时候显示off跟on很清楚了;
//再就是这些音乐与音效的分离,
//实现思路:音效呢就是点击的声音片段,我用了AudioClip,
//然后初始化了AudioSource控件,定义一个音效的控件
//public AudioSource music;这个music用来控制音效的,
//因为两个音效是用声音片段AudioClip定义的,我并没有查到他的播放与暂停,
//所以定义了一个声音资源,来总的控制,
//music.PlayOneShot(beep);这样点击发出音效;
//当music.volume = 0;时,音效声音为0,
//实现了音效的关闭,
//而音乐呢,直接拖到了AudioSource的AudioClip上,
//这样呢,当audio.Stop();时,背景音乐停止,放弃了之前的GetComponent&AudioSource&().mute =
//这样已静音音乐音效都不响了,没法区分开了;
//这次呢,还发现了用皮肤使按钮透明,之前一直用的办法是用贴图遮挡住按钮,每次调整按钮与贴图的位置真是费劲;
//现在好了,把按钮放到合适的位置,不至于完好对齐,用皮肤使按钮透明就好了;
//////////////////////////////////////////////////////////////
看一下代码吧
/////////////////////////////////////////////////////////////
//此菜单的思路
/////////////////////////////////////////////////////////////
//进入游戏,游戏介绍,退出游戏没什么特别的,只是用了按钮事件,
//来说一下顶部的菜单栏,这个呢可以点击右箭头使几个按钮显示出来,类似抽屉一样
//实现思路:点击右箭头,向右依次显示出几个按钮,同时右箭头变为左箭头
//右上角的声音控制,点一下为整个游戏静音,这是两张声音UI
//一张有音量的,一张没有音量的,在设置中,当音乐与音效都不为关闭时,右上角显示有音量图,
//反之,显示没有音量的图;
//点击设置以及提示按钮,弹出菜单凸显出来,背景变暗,背景上的按钮失效
//实现思路:当点击设置按钮时,我们在GUI函数最顶端显示一张全屏的按钮,同时使用皮肤,
//皮肤的按钮按下与悬停的图案删除,这样我们点击时就不会闪烁了,同时这个按钮没有命令
//发现GUI的覆盖关系有点乱,可能是自己不够理解,之前把全屏按钮写在了GUI函数的末尾,
//结果背景按钮仍然起作用,后来移到最顶端反而使背景按钮失效,不知道谁遮挡了谁;
//设置菜单里的声音的开关也是,什么时候显示off跟on很清楚了;
//再就是这些音乐与音效的分离,
//实现思路:音效呢就是点击的声音片段,我用了AudioClip,
//然后初始化了AudioSource控件,定义一个音效的控件
//public AudioSource music;这个music用来控制音效的,
//因为两个音效是用声音片段AudioClip定义的,我并没有查到他的播放与暂停,
//所以定义了一个声音资源,来总的控制,
//music.PlayOneShot(beep);这样点击发出音效;
//当music.volume = 0;时,音效声音为0,
//实现了音效的关闭,
//而音乐呢,直接拖到了AudioSource的AudioClip上,
//这样呢,当audio.Stop();时,背景音乐停止,放弃了之前的GetComponent&AudioSource&().mute =
//这样已静音音乐音效都不响了,没法区分开了;
//这次呢,还发现了用皮肤使按钮透明,之前一直用的办法是用贴图遮挡住按钮,每次调整按钮与贴图的位置真是费劲;
//现在好了,把按钮放到合适的位置,不至于完好对齐,用皮肤使按钮透明就好了;
//////////////////////////////////////////////////////////////
using UnityE
using System.C
public class Menu : MonoBehaviour {
public AudioC
public AudioClip beep1;
public AudioSource music=
public int open = 1;
public int kai = 1;
public int kai1 = 1;
public int kai2 = 1;
public int kai3 = 1;
public int kai4 = 1;
public GUISkin GUI
public GUISkin GUIskin1;
public Texture2D
public Texture2D bt1;
public Texture2D bt2;
public Texture2D bt3;
public Texture2D p1;
public Texture2D p2;
public Texture2D p3;
public Texture2D p4;
public Texture2D p5;
public Texture2D p6;
public Texture2D p7;
public Texture2D p8;//问号提示
public Texture2D p9;//设置
public Texture2D p10;//音效开关
// Use this for initialization
void Start () {
music = gameObject.AddComponent&AudioSource&();
// Update is called once per frame
void Update () {
void OnGUI()
GUIStyle backGround = new GUIStyle();
backGround.normal.background =
GUI.Label(new Rect(0, 0, Screen.width, Screen.height), &&, backGround);
//GUIStyle go = new GUIStyle();
//go.fontSize = 35;
//go.normal.textColor = new Color(255, 255, 255);
if (open == 0 && kai1 == 0)
GUI.skin = GUI
if (GUI.Button(new Rect(Screen.width * 0.36f, Screen.height * 0.53f, Screen.width * 0.24f, Screen.height * 0.07f), &&))
music.PlayOneShot(beep1);
if (GUI.Button(new Rect(Screen.width * 0.73f, Screen.height * 0.28f, Screen.width * 0.1f, Screen.height * 0.05f), &&))
music.PlayOneShot(beep1);
GUI.skin = GUIskin1;
if (GUI.Button(new Rect(0, 0, Screen.width, Screen.height), &&))
GUI.DrawTexture(new Rect(Screen.width * 0.08f, 0, Screen.width * 0.8f, Screen.height * 0.8f), p8);
if (open == 0 && kai2 == 0)
GUI.skin = GUI
if (GUI.Button(new Rect(Screen.width * 0.36f, Screen.height * 0.53f, Screen.width * 0.24f, Screen.height * 0.07f), &&))
music.PlayOneShot(beep1);
if (GUI.Button(new Rect(Screen.width * 0.73f, Screen.height * 0.28f, Screen.width * 0.1f, Screen.height * 0.05f), &&))
music.PlayOneShot(beep1);
if (GUI.Button(new Rect(Screen.width * 0.45f, Screen.height * 0.355f, Screen.width * 0.266f, Screen.height * 0.07f), &&))
music.PlayOneShot(beep1);
if (kai3 == 0)
audio.Stop();
audio.Play();
if (GUI.Button(new Rect(Screen.width * 0.45f, Screen.height * 0.43f, Screen.width * 0.266f, Screen.height * 0.07f), &&))
music.PlayOneShot(beep1);
if (kai4 == 0)
music.volume = 0;
music.volume = 1;
GUI.skin = GUIskin1;
if (GUI.Button(new Rect(0, 0, Screen.width, Screen.height), &&))
GUI.DrawTexture(new Rect(Screen.width * 0.08f, 0, Screen.width * 0.8f, Screen.height * 0.8f), p9);
GUI.skin = GUI
if (GUI.Button(new Rect(Screen.width * 0.29f, Screen.height * 0.605f, Screen.width * 0.365f, Screen.height * 0.08f), &&))
music.PlayOneShot(beep);
//Application.LoadLevel(&Loading&);
GUI.DrawTexture(new Rect(Screen.width * 0.27f, Screen.height * 0.6f, Screen.width * 0.4f, Screen.height * 0.1f), bt1);
//GUI.Label(new Rect(Screen.width * 0.47f, Screen.height * 0.6f, Screen.width * 0.2f, Screen.height * 0.1f), &进入游戏&, go);
if (GUI.Button(new Rect(Screen.width * 0.29f, Screen.height * 0.705f, Screen.width * 0.365f, Screen.height * 0.08f), &&))
music.PlayOneShot(beep);
//print(&111&);
GUI.DrawTexture(new Rect(Screen.width * 0.27f, Screen.height * 0.7f, Screen.width * 0.4f, Screen.height * 0.1f), bt2);
if (GUI.Button(new Rect(Screen.width * 0.29f, Screen.height * 0.805f, Screen.width * 0.365f, Screen.height * 0.08f), &&))
music.PlayOneShot(beep);
Application.Quit();
GUI.DrawTexture(new Rect(Screen.width * 0.27f, Screen.height * 0.8f, Screen.width * 0.4f, Screen.height * 0.1f), bt3);
GUI.skin = GUI
//GUI.Label(new Rect(Screen.width * 0.3f, Screen.height * 0.8f, 100, 100), &Loading.....&, go);
if (open == 1)
if (GUI.Button(new Rect(0, 0, Screen.width * 0.15f, Screen.width * 0.15f), &&))
music.PlayOneShot(beep1);
GUI.DrawTexture(new Rect(0, 0, Screen.width * 0.15f, Screen.width * 0.15f), p1);
if (open == 0)
if (GUI.Button(new Rect(0, 0, Screen.width * 0.15f, Screen.width * 0.15f), &&))
music.PlayOneShot(beep1);
GUI.DrawTexture(new Rect(0, 0, Screen.width * 0.15f, Screen.width * 0.15f), p2);
if (GUI.Button(new Rect(Screen.width * 0.15f, 0, Screen.width * 0.15f, Screen.width * 0.15f), &&))
music.PlayOneShot(beep1);
GUI.DrawTexture(new Rect(Screen.width * 0.15f, 0, Screen.width * 0.15f, Screen.width * 0.15f), p3);
if (GUI.Button(new Rect(Screen.width * 0.3f, 0, Screen.width * 0.15f, Screen.width * 0.15f), &&))
music.PlayOneShot(beep1);
GUI.DrawTexture(new Rect(Screen.width * 0.3f, 0, Screen.width * 0.15f, Screen.width * 0.15f), p4);
if (GUI.Button(new Rect(Screen.width * 0.45f, 0, Screen.width * 0.15f, Screen.width * 0.15f), &&))
music.PlayOneShot(beep1);
Application.Quit();
GUI.DrawTexture(new Rect(Screen.width * 0.45f, 0, Screen.width * 0.15f, Screen.width * 0.15f), p5);
if(kai3+kai4!=2)
if(kai==1)
if (GUI.Button(new Rect(Screen.width * 0.85f, 0, Screen.width * 0.15f, Screen.width * 0.15f), &&))
music.PlayOneShot(beep1);
//GetComponent&AudioSource&().mute =
audio.Stop();
music.volume = 0;
//audio.Stop();
GUI.DrawTexture(new Rect(Screen.width * 0.85f, 0, Screen.width * 0.15f, Screen.width * 0.15f), p6);
if (kai == 0 || (kai3 == 1 && kai4 == 1))
if (GUI.Button(new Rect(Screen.width * 0.85f, 0, Screen.width * 0.15f, Screen.width * 0.15f), &&))
music.PlayOneShot(beep1);
//GetComponent&AudioSource&().mute =
audio.Play();
music.volume = 1;
//audio.Play();
//if(kai3!=0||kai4!=0)
GUI.DrawTexture(new Rect(Screen.width * 0.85f, 0, Screen.width * 0.15f, Screen.width * 0.15f), p7);
if (open == 0 && kai2 == 0&&kai3 == 0)
GUI.DrawTexture(new Rect(Screen.width * 0.45f, Screen.height * 0.355f, Screen.width * 0.266f, Screen.height * 0.07f), p10);
if (open == 0 && kai2 == 0&&kai4 == 0)
GUI.DrawTexture(new Rect(Screen.width * 0.45f, Screen.height * 0.43f, Screen.width * 0.266f, Screen.height * 0.07f), p10);
就是一些开关逻辑的运用,思路清晰就没问题,注意一些细节就好了,
互相交流学习,有错误请指正,有更好的实现方法请留言,谢谢啦
本文已收录于以下专栏:
相关文章推荐
[视频连接](/v_show/id_XMTU0NTk4NjgwOA==.html?from=y1.7-1.2)先理解几个名词和概念:声音:一种波动,通过空气分子有节...
Unity 中的音乐可视化
本帖最后由 204有个大坑 于
17:33 编辑
1738music-visulization-in-unity.jpg (32.33 KB, ...
关注公众号
在公众号里回复“”秘密“”两个字
http://task.csdn.net/m/task/home?task_id=398 领取奖励
提示:根据公众号里的自动回复,完成...
1. 人工神经元( Artificial Neuron )模型人工神经元是神经网络的基本元素,其原理可以用下图表示:
图1. 人工神经元模型图中x1~xn是从其他神经元传来的输入信号,wij表示...
说起DBA,全称是Database Administrator,不是Doctor of Business Administration,千万不要误解,那可是天壤之别!尽管如此,很多人依然认为有着神秘的...
与sgy一起开启你的Docker之路
关键词: D Docker中使用gdb无法进入断点,无法调试;
这篇博客适合谁?
对于Docker并不了解,只是有一点模糊的...
保持肠胃畅通,对于我们的身体是非常重要的。积累毒素会影响我们气色和皮肤。只有身体排毒好了,才能让身体更加轻盈人也更加精神。
日常多加注意一些小细节可帮助你减少毒素积累。
早晨最好空腹喝水...
在开发中我们经常会遇到左边是树形菜单,右边是一个显示列表,单击左边的树形菜单项时,右边会显示该菜单里面相对应的内容。那么左边的树形菜单怎么从数据库里面获取数据在遍历实现呢?我们不妨来看看设计思路。
前言我们看过很多关于Binder的文章,但是看完大多数文章后,都会有不知所云的感觉,是因为那些文章不够好吗?不是那些文章讲得不够好,我们看的不明白主要是存在两种情况,一种深入代码细节不能自拔,从Fra...
他的最新文章
讲师:何宇健
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)【求助】怎样做出显示屏效果?【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:78,578贴子:
【求助】怎样做出显示屏效果?收藏
最近工作中需要用到一个3D实物显示器,显示屏上会显示各种各样的参数值,并且这些参数值会随着程序中的操作而动态变化。请问各位大神有没有做过这种效果的?麻烦指教一下或提供下思路,多谢!
51CTO学院11年行业品牌,1400万用户选择,中国专业IT技能学习平台,unity能做什么.通过在线学习的方式,帮助广大技术人员实现技能提升,高薪就业的职业梦想,unity能做什么.
3d实物显示器是什么东西...zspace么?
使用Render Texture渲染一个ui面板给显示器屏幕材质???
RenderTexture是最好的方法了
登录百度帐号推荐应用当前位置: >
Unity3D 声音控制脚本
时间: 10:49 来源:Unity之家 作者:unity.jb51.net 浏览:
做项目,多数情况都会用到背景音乐等等一些音乐效果。因此介绍下声音的控制var&myA
myAudio&=&GetComponent(AudioSource);&//获取声音元件
private&var&scrollVol&:&float&=&0.5;&//定义音量控制变量
function&AudioSwitch&()
if(!myAudio.playOnAwake)&//判断是否开关
myAudio.Play();
myAudio.playOnAwake=
myAudio.Stop();
myAudio.playOnAwake=
function&OnGUI()
scrollVol&=&GUI.HorizontalSlider&(Rect&(150,175,100,20),&scrollVol,&0.0,&1.0);
myAudio.volume&=&scrollV
if&(GUI.Button&(Rect&(10,10,80,30),&&on&))&
myAudio.Play();
if&(GUI.Button&(Rect&(100,10,80,30),&&off&))&
myAudio.Stop();
}OK。大家可以去测试下。。。
(责任编辑:脚印)
免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
猜你也喜欢看这些 ??????
其他类型的Unity编程 ??????[求解]Unity3D音效叠一起太大声了,应该怎么解决?【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:78,578贴子:
[求解]Unity3D音效叠一起太大声了,应该怎么解决?收藏
Unity3D为物体挂一个声音组件,默认播放,当我同事创建多个游戏物体的时候,很多个相同音效相叠会很大声比如弹幕游戏,飞机发射散弹..应该如何处理呢?星际争霸2同样音效相叠是不会变大声的,怎么做到一样?
江苏盘锦天燃气模温机,一台省得让你怀疑人生的燃气锅炉
Audio选项里把2D音效改成3D音效
登录百度帐号推荐应用UGUI如何添加按钮点击音效?我申明的“public AudioSource audio”拖不进音频文件,我想我弄错了。请教您一下~我该怎么做?~
public class MenuButton : MonoBehaviour {
public AudioC
private AudioSource music_A;
public void BeginButton(){
music_A = gameobject.AddComponent&AudioSource& ();
music_A.clip =
music_A.Play ();
Application.LoadLevel("ChooseView");
public void SetButton(){
music_A = gameobject.AddComponent&AudioSource& ();
music_A.clip =
music_A.Play ();
Application.LoadLevel("SetView");
public void HelpButton(){
music_A = gameobject.AddComponent&AudioSource& ();
music_A.clip =
music_A.Play ();
Application.LoadLevel ("HelpView");
}Leo_Li老师,我用这种方法虽然能添加按钮音效,不过界面一下子就快速跳转了,按钮音效根本没有播放完。请问我该如何正确的做,谢谢~~~
你可以将播放声音的物体设为DontDestroyonload , 然后异步加载场景。还有就是检查一下 声音是否是3D模式的,3D模式一般你就听不见声音了
&script src=&&/script&
&script src=&&/script&
GUI 组件的应用

我要回帖

更多关于 unity3d 播放音效 的文章

 

随机推荐