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

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

 using System;
using UnityEngine;
namespace AssemblyCSharp
{
public class CommonHelper
{
public static Rect GetCenterRect(float width,float height)
{
float left =(Screen.width-width)/;
float top =(Screen.height-height)/;
return new UnityEngine.Rect(left,top,width,height);
}
}
}

CommonHelper

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

 using System;
using UnityEngine;
namespace AssemblyCSharp
{
public class PrefsHelper
{
//背景音乐
public static float bgVolume
{
get
{
if(PlayerPrefs.HasKey("bgVolume"))
{
return PlayerPrefs.GetFloat("bgVolume");
}
else
{
return 1f;//音量的最大值为 1
}
}
set
{
PlayerPrefs.SetFloat("bgVolume",value);
}
}
//音效
public static float effectVolume
{
get
{
if(PlayerPrefs.HasKey("effectVolume"))
{
return PlayerPrefs.GetFloat("effectVolume");
}
else
{
return 1f;
}
}
set
{
PlayerPrefs.SetFloat("effectVolume",value);
}
}
}
}

PrefsHelper

3.编写MainMenu脚本:

using UnityEngine;
using System.Collections; public class MainMenu : MonoBehaviour {
public Texture bgImg;//背景图片 private Vector2 scrolPosition;//滚动条 void Start () {
AudioSource bgVolume =gameObject.GetComponent<AudioSource>();
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变量赋值。

效果如下:

Unity3D之主菜单的更多相关文章

  1. Maximo 7.5 集成方式 去掉主菜单

    最近有人在QQ中问我,在与portal集成时,客户不想显示maximo的主菜单,以前也有过朋友问过我这个问题,被我忽悠过去了,现在想起来,是不对的! 经过一翻查找,发现maximo有一个参数,port ...

  2. Fiddler2 主菜单

    Fiddler2 主菜单 六个主菜单分别是: 文件(File) Capture Traffic ——启用捕获功能,快捷键 F12 此功能的开启/关闭状态,程序安装后默认是开启的.可以在 Fiddler ...

  3. Centos安装gnome主菜单编辑器无

    首选项---主菜单--   即是alacarte.. centos ===安装  alacarte.noarch 0:0.12.4-1.el6 即可.

  4. java游戏开发杂谈 - 实现游戏主菜单

    经常玩游戏的同学,大家都知道,游戏都会有个主菜单,里面有多个菜单选项:开始游戏.游戏设置.关于游戏.退出游戏等等,这个菜单是怎么实现的呢. 有一定桌面软件开发基础的同学可能会想到,用JButton组件 ...

  5. js点击出现二级菜单,点击二级菜单主菜单换成二级菜单

    点击出现二级菜单 *{ margin:0px auto; padding:0px; } .yiji{ width:200px; height:40px; background-color:red; c ...

  6. 如何固定OpenERP顶的主菜单,方便滚动至第二屏以及多屏时,快速切换主菜单

    如何固定OpenERP顶的主菜单,方便滚动至第二屏以及多屏时,快速切换主菜单 作者:广州-步科,来自OpenERP应用群() 将“addons\web\static\src\css”目录下的“base ...

  7. Pycharm主菜单学习

    “工欲善其事,必先利其器”,这话我一直是这么坚信的! 找到一款顺手称心的工具,拥有它,熟练地使用它! Pycharm据说就是使用Python的一款最好的工具—— 于是,开始了第一步的学习----先从熟 ...

  8. 用cocos2d-html5做的消除类游戏《英雄爱消除》(1)——系统主菜单

    系统主菜单如下图所示: 首先,介绍下这个主菜单,它包含了一个动画logo以及一个按钮选项,动画logo每隔1秒钟切换一张图片,点击相应的按钮选项会切换不同的游戏场景. 下面看下这个界面的源码: /** ...

  9. 关于MFC主菜单和右键弹出菜单

    一.主菜单.弹出菜单和右键菜单的概念: 主菜单是窗口顶部的菜单,一个窗口或对话框只能有一个主菜单,但是主菜单可以被更改(SetMenu()更改): 创建方式:CMenu::CreateMenu(voi ...

随机推荐

  1. cocos2d-x C++ (iOS)集成第三方微信分享

    1.新建项目并下载 ShareSDK 1.Cocos2d-x项目环境搭建,不会的童鞋自行面壁哈: 网页链接. 2.ShareSDK iOS版本的 Cocos2d-x 插件是在ShareSDK iOS版 ...

  2. whu 643 Soul Artist(二维BIT 区间更新,单点查询)

    Soul Artis [题目链接]Soul Artis [题目类型]二维BIT &题解: 二维区间更新和一维相比,要容斥一下,更新一块区间就是更新4个点. 还有这个我先是写了2*n^2logn ...

  3. LeetCode67.二进制求和

    给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11", b = "1" 输出: ...

  4. JavaScript-合同到期续约案例

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. (转)Hashtable与ConcurrentHashMap区别

    ConcurrentHashMap融合了hashtable和hashmap二者的优势. hashtable是做了同步的,hashmap未考虑同步.所以hashmap在单线程情况下效率较高.hashta ...

  6. word论文之图和表目录制作

    https://jingyan.baidu.com/article/91f5db1b3c539f1c7e05e341.html?qq-pf-to=pcqq.c2c 1.目标: (1)图目录. (2)表 ...

  7. meta twitter 属性

    总结下国际范儿的meta标签 <meta name="A game made to inspire developers to use GSAP, ES6 and Flexbox&qu ...

  8. Python2.6 升级2.7

    一. Centos6 默认为python2.6且不可卸载(因为Centos6深度依赖Python),要想升级为2.7 只能通过全新升级 操作如下: 1.下载 Python2.7 网址 https:// ...

  9. sitecore系列教程之Sitecore个性化-体验概况概述

    SITECORE 8:体验概况概述 什么是体验简介? 体验配置文件是Sitecore中的仪表板应用程序,它说明了客户体验和交互的关键区域,例如访问者详细信息,访问,活动,目标,配置文件,自动化等等. ...

  10. uva 1416 Warfare And Logistics

    题意: 给出一个无向图,定义这个无向图的花费是 其中path(i,j),是i到j的最短路. 去掉其中一条边之后,花费为c’,问c’ – c的最大值,输出c和c’. 思路: 枚举每条边,每次把这条边去掉 ...