博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity3D之主菜单
阅读量:6305 次
发布时间:2019-06-22

本文共 3555 字,大约阅读时间需要 11 分钟。

1.新建一个名为MainMenu的C#脚本,修改编码后拖动到主摄像机,并给主摄像机添加一个AudioSource声音源作为背景音乐。将音乐文件赋值给Audio Clip属性。

2.创建一个CommonHelper类,用于封装常用的方法,比如让窗口的位置居中显示:

1 using System; 2 using UnityEngine; 3 namespace AssemblyCSharp 4 { 5     public class CommonHelper 6     { 7         public static Rect GetCenterRect(float width,float height) 8         { 9             float left =(Screen.width-width)/2;    10             float top =(Screen.height-height)/2;11             return new UnityEngine.Rect(left,top,width,height);12         }13     }14 }
CommonHelper

3.创建一个PrefsHelper类,用于存放公共变量,也是很多脚本都要用到。比如存放背景音量值,背景音效的值:

1 using System; 2 using UnityEngine; 3 namespace AssemblyCSharp 4 { 5     public class PrefsHelper 6     { 7         //背景音乐 8         public static float bgVolume 9         {10             get11             {12                 if(PlayerPrefs.HasKey("bgVolume"))13                 {14                     return PlayerPrefs.GetFloat("bgVolume");15                 }16                 else17                 {18                     return 1f;//音量的最大值为 1    19                 }20             }21             set22             {23                 PlayerPrefs.SetFloat("bgVolume",value);24             }25         }26         //音效27         public static float  effectVolume28         {29             get30             {31                 if(PlayerPrefs.HasKey("effectVolume"))32                 {33                     return     PlayerPrefs.GetFloat("effectVolume");34                 }35                 else36                 {37                     return 1f;    38                 }39             }40             set41             {42                 PlayerPrefs.SetFloat("effectVolume",value);43             }44         }45     }46 }
PrefsHelper

3.编写MainMenu脚本:

using UnityEngine;using System.Collections;  public class MainMenu : MonoBehaviour {	public Texture bgImg;//背景图片		private Vector2 scrolPosition;//滚动条		void Start () {		AudioSource bgVolume =gameObject.GetComponent
(); bgVolume.volume=AssemblyCSharp.PrefsHelper.bgVolume; //初始化滚动条位置 scrolPosition[0]=50;//表滚动视图横向滚动滑块位置 scrolPosition[1]=50;//纵 } // Update is called once per frame void Update () { } void OnGUI() { GUI.DrawTexture(new Rect(0,0,bgImg.width,bgImg.height),bgImg);//背景图 #region 居中区域 GUILayout.BeginArea(AssemblyCSharp.CommonHelper.GetCenterRect(150f,300f));//居中 GUI.color=Color.yellow; if(GUILayout.Button("文件读取(笑话)")) { Application.LoadLevel("SceneJoke");//讲笑话 } if(GUILayout.Button("选 项 (音量调节)")) { Application.LoadLevel("SceneOptions"); //进入 设置选项 } if(GUILayout.Button("旋转移动(失败)"))//失败:在Scene视图里看到的东西Game视图里看不到 { Application.LoadLevel("SceneMove"); } if(GUILayout.Button("登录(密码问题)对齐"))//密码问题 { Application.LoadLevel("SceneLogin"); } if(GUILayout.Button("ToolBar(数组初始化)")) { Application.LoadLevel("SceneToolBar"); } if(GUILayout.Button("群组视图",GUILayout.ExpandWidth(false)))//设置宽度不等于最宽宽度 { Application.LoadLevel("SceneGroupView"); } if(GUILayout.Button("动态添加/关闭窗口")) { Application.LoadLevel("SceneAddCloseWindow"); } if(GUILayout.Button("绘制动画")) { Application.LoadLevel("SceneDrawAnima"); } GUILayout.EndArea(); #endregion #region 滚动条区域 scrolPosition =GUI.BeginScrollView(new Rect(0,0,200,200),scrolPosition,new Rect(0,0,Screen.width,300),true,true); GUILayout.Label(@" 第一个参数:设置滚动显示视图的范围 第二个参数:设置滚动条的起始位置,第三个参数用于设置滚动整体显示范围(显示范围必须小于游戏视图整体范围),4、5表示超过显示范围后显示滚动条"); GUI.EndScrollView(); #endregion }}

 4.回到Unity编辑界面,给在MainMenu中声明的Public变量赋值。

效果如下:

转载于:https://www.cnblogs.com/huangzhen22/p/3258856.html

你可能感兴趣的文章
Linq之Lambda表达式初步认识
查看>>
cas改造随笔
查看>>
Linux命令-某个用户组下面的所有用户
查看>>
【面试笔试】Java常见面试笔试总结
查看>>
java动态代理技术
查看>>
《大话设计模式》--外观模式
查看>>
基于ngx_lua的动态服务路由方案
查看>>
文件IO详解(四)---标准输入、标准输出和标准错误
查看>>
张小龙2018PRO版微信公开课演讲全文 透露2018微信全新计划
查看>>
JQuery判断CheckBox是否选中
查看>>
leetcode 653. Two Sum IV - Input is a BST
查看>>
新建 .NET Core 控制台项目 C# 数组深拷贝
查看>>
DotNetCore跨平台~Json动态序列化属性
查看>>
Spring Boot 特性 —— SpringApplication
查看>>
Delphi 操作Flash D7~XE10都有 导入Activex控件 shockwave
查看>>
BurpSuite中的安全测试插件推荐
查看>>
Spring Boot 集成MyBatis
查看>>
linux中chmod与chown两个命令详解
查看>>
查看Ubuntu是32位还是64位
查看>>
QT和MFC的差别
查看>>