今天介绍一些制作游戏菜单的知识点:


1.播放音乐:
     1.把音乐文件移到场景中,取名为Music
     2.在脚本中声明AudioSource music
     3.如果没播放就播放
     if(!music.isPlaying) music.Play();
     4.停止:
     music.Stop();

2.游戏状态:
     游戏状态怎么理解呢?就是个游戏发送一个状态,告诉它下一步应该做什么事情?这个状态起到了简化代码,使代码更有可读性
     比如,现在有以下状态,渲染主界面,渲染开始界面,渲染设置,渲染帮助,离开界面,那么在游戏状态中就可以这样声明:
     public const int STATE_MAINMEMU = 0;
     public const int STATE_STARTGAME = 1;
     public const int STATE_OPTION = 2;
     public const int STATE_HELP = 3;
     public const int STATE_QUIT = 4;
     然后设置一个当前的游戏状态
     public int gameState;
     游戏一开始要渲染主菜单界面
     void Start()
     {
          gameState = STATE_MAINMENU;
     }
     这样以后再更新中监听当前游戏状态,然后进行游戏:
     void Update()
     {
          switch(gameState)
          {
               case STATE_MAINMENU:
                    RenderMainMenu();
                break;
               case STATE_STARTGAME:
                    RenderStartGame();
                 break;
                .......
          }
     }
    这样,当执行某个动作使游戏进入另外一个状态:
     if(GUI.Button(new Rect(0,50,483,78),"","start")
     {
          gameState = STATE_STARTGAME;
     }
     整个游戏逻辑看起来很清楚简洁,它利用了消息响应的模式使游戏运行起来

3.GUISkin:
     GUISkin是这次学到的第二个收获,制作一个GUISkin就可以让游戏使用一套皮肤,然后直接从脚本中调用。比如,现在要制作一个每个按钮的背景,一共有七个按钮:start,option,help,quit,back ,music_on,music_off
     创建GUISkin方法:
     在Project中Create->GUI Skin:
     在Button选项中声明Size为7:对于Size 0 ,名字取为start,在Normal选项中把start的图像拖进去,制作完毕
     下面的6个全部这样制作。
      接着在脚本中调用皮肤:

     public GUISkin mySkin;
     void RenderMainMenu()
     {
          GUI.skin=myskin;
          //渲染游戏主菜单界面的的背景:
          GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),TextureBg);
          [url=]//渲染sta[/url]rt按钮的背景
          if(GUI.Button(new Rect(0,0,403,78),"","start")
          {

          }
     }

4.退出游戏程序:
     点击quit按钮停止:
     if(GUI.Button(new Rect(0,0,500,78),"","quit")
     {
          Appliction.quit();
     }