1. 程式人生 > >unity3d實戰專案——拯救大兵1:介面設計之場景部署

unity3d實戰專案——拯救大兵1:介面設計之場景部署

第一部分:介面設計

一、新建場景,部署資源

1、新建專案。

2、在專案面板(project)中,新建Resources、sounds、scripts、scenes四個目錄,並在Resources下面新建一個名為Textures子目錄。

3、從網上下載專案資源(共包括12個檔案,10張圖片+1個聲音+1個指令碼),下載網址為:https://download.csdn.net/download/zslsir/10701641。將從網上下載的壓縮檔案下載,解壓後,將聲音檔案a.mp3放入sounds目錄中、將指令碼檔案Menu.cs放入scripts目錄中,將其他的10張圖片放入Resoures\Textures目錄中。

4、另存為當前場景到scenes中,並命名為start。

Menu.cs程式碼如下:

using UnityEngine; using System.Collections; using UnityEngine.SceneManagement;

public class Menu : MonoBehaviour  {          //遊戲介面狀態機          //主選單介面     public const int STATE_MAINMENU = 0;     //開始遊戲介面     public const int STATE_STARTGAME = 1;     //遊戲設定介面     public const int STATE_OPTION = 2;     //遊戲幫助介面     public const int STATE_HELP = 3;     //遊戲退出介面     public const int STATE_EXIT = 4;          //GUI面板     public GUISkin mySkin;          //遊戲背景貼圖     public Texture textureBG;      //開始選單截圖     public Texture tex_startInfo;     //幫助選單貼圖     public Texture tex_helpInfo;          //遊戲音樂資源     public AudioSource music;       //當前遊戲狀態     private int gameState;          void Start ()     {         //初始化遊戲狀態為:主選單介面         gameState = STATE_MAINMENU;         //設定滑鼠顯示         Cursor.visible = true;     }          void OnGUI()     {              switch(gameState)         {             case STATE_MAINMENU:                 //繪製主選單介面                 RenderMainMenu();             break;             case STATE_STARTGAME:                 //繪製遊戲開始介面                 RenderStart();             break;             case STATE_OPTION:                 //繪製遊戲設定介面                 RenderOption();             break;             case STATE_HELP:                 //繪製遊戲幫助介面                 RenderHelp();             break;             case STATE_EXIT:                 //繪製遊戲退出介面                 //目前直接關閉退出遊戲             break;         }         

    }     //繪製主選單介面     void RenderMainMenu()     {         //設定介面面板         GUI.skin = mySkin;         //繪製遊戲背景圖         GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),textureBG);         //開始遊戲按鈕         if(GUI.Button(new Rect (0,30,623,153),"","start"))         {             //進入開始遊戲狀態             //目前由於是測試階段             //後期會在這裡重新載入新的遊戲場景             gameState = STATE_STARTGAME;                          //Application.LoadLevel ("Scene_Game");             //SceneManager.LoadScene("Scene_Game");         }         //遊戲設定按鈕         if(GUI.Button(new Rect (0,180,623,153),"","option"))         {             //進入開始遊戲狀態             gameState = STATE_OPTION;         }         //遊戲幫助按鈕         if(GUI.Button(new Rect (0,320,623,153),"","help"))         {             //進入遊戲幫助狀態             gameState = STATE_HELP;         }         //遊戲退出按鈕         if(GUI.Button(new Rect (0,470,623,153),"","exit"))         {             //退出遊戲             Application.Quit();         }     }     //繪製遊戲開始介面     void RenderStart()     {         GUI.skin = mySkin;         GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),tex_startInfo);         //繪製返回按鈕         if(GUI.Button(new Rect (0,500,403,78),"","back"))         {             //返回遊戲主選單             gameState = STATE_MAINMENU;         }     }     //繪製遊戲幫助介面     void RenderHelp()     {         GUI.skin = mySkin;         GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),tex_helpInfo);         if(GUI.Button(new Rect (0,500,403,78),"","back"))         {             gameState = STATE_MAINMENU;         }     }     //繪製遊戲設定介面     void RenderOption()     {         GUI.skin = mySkin;         GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),textureBG);                  //開啟音樂按鈕         if(GUI.Button(new Rect (0,0,403,75),"","music_on"))         {             if (!music.isPlaying)             {                     //播放音樂                 music.Play();               }  

        }         //關閉音樂按鈕         if(GUI.Button(new Rect (0,200,403,75),"","music_off"))         {             //關閉音樂             music.Stop();         }         //返回按鈕         if(GUI.Button(new Rect (0,500,403,78),"","back"))         {             //返回遊戲主選單             gameState = STATE_MAINMENU;         }     } }