unity 3D遊戲開始介面GUI美化
////////////////2015/07/07////////////
///////////////by xbw///////////////////
//////////////環境 unity 4.6.1//////
先上效果圖
是不是很可愛,萌萌噠;;;
話不多說,首先建立一個場景,,,
圖片中的天空場景加了天空盒,,,說一下怎麼新增天空盒吧,我不喜歡給主攝像機新增天空盒,不過這種方法也說一下,點選主攝像機,在inspector屬性欄中新增成分,skybox,然後找到天空盒的素材,將他賦給天空盒就好了,
不過,這種方式不能預覽到,只能在執行時才能看到,是不是很不爽啊,,
那就看另一種方法吧,,在edit中找到render setting 開啟,在inspector中找到skybox material,將天空和素材託給他就好了,立馬就會顯示在場景中了;是不是很好玩啊;
我們繼續;;;
首先,找到選單欄中的GameObject--Create Empty,建立一個空物體,我們把它命名為Menu2;
下面不廢話了,直接上程式碼了;自己調整屬性就好了,用的Csharp指令碼
using UnityEngine; using System.Collections; [RequireComponent(typeof(AudioSource))] public class MainMenuGUI : MonoBehaviour { public AudioClip beep; public GUISkin menuSkin; public Rect menuArea; public Rect playButton; public Rect instructionsButton; public Rect quitButton; public Rect instructions; Rect menuAreaNormalized; string menuPage = "main"; // Use this for initialization void Start () { menuAreaNormalized = new Rect(menuArea.x * Screen.width - (menuArea.width * 0.5f), menuArea.y * Screen.height - (menuArea.height * 0.5f), menuArea.width, menuArea.height); } void OnGUI() { GUI.skin = menuSkin; GUI.BeginGroup(menuAreaNormalized); if (menuPage == "main") { if (GUI.Button(new Rect(playButton), "play")) { StartCoroutine("ButtonAction", "second"); //Application.LoadLevel("second"); } if (GUI.Button(new Rect(instructionsButton), "Instructions")) { audio.PlayOneShot(beep); menuPage = "instructions"; } if (GUI.Button(new Rect(quitButton), "Quit")) { StartCoroutine("ButtonAction", "quit"); } } else if(menuPage=="instructions") { GUI.Label(new Rect(instructions), "You awake on a mysterious island...Find a way to signal for help or face certain doom!"); if(GUI.Button(new Rect(quitButton),"Back")) { audio.PlayOneShot(beep); menuPage = "main"; } } GUI.EndGroup(); } IEnumerator ButtonAction(string levelName) { audio.PlayOneShot(beep); yield return new WaitForSeconds(0.35f); if(levelName!="quit") { Application.LoadLevel(levelName); } else { Application.Quit(); Debug.Log("Have Quit"); } } // Update is called once per frame void Update () { } }
將此程式碼掛載給Menu2這個空物體;;;;
按著這些屬性調整,,,
其中 程式碼中的Beep是聲音檔案,就是點一下按鈕會發出相應的聲音,,,
Menu Skin這個是選單屬性,GUI選單面板,如果不加他,選單是unity自帶的初始狀態,比較醜陋,不用我說,,,
使用了Menu Skin後,就會像本文最開始的那張圖片的按鈕,形狀跟顏色都有了很大的變化;;;
下面介紹一下詳細過程;;;
在工程面板中建立一個GUI skin 就是GUI面板,起到美化的作用;;;重新命名為Main Menu
我修改了一下字型,這個只需要把字型資源拖進去就好了;
還修改了Button中的一些,詳細說一下;
這個Normal就是不操作的按鈕樣子,這個背景貼圖把圖片資源拖動過去就好了,,至於這個Text Color就是無操作的顏色;
這個Hover就是滑鼠懸停在按鈕時的顯示,這個貼圖和顏色都有相應的變化,
這個Active就是滑鼠點選下去的反應的響應變化,
還修改了Font Size 字型的大小;;;
這個是instructions按鈕點選後會顯示一個文字說明,對文字顏色的修改;;;
上個效果圖
是不是很可愛呢,跟著操作一下吧,希望大家互相學習交流,午夜十二點寫的呢,
希望大家多留言,我會及時給予回覆。
至於素材資源,我會給需要的同學發到郵箱去;;;
不早了,我要稍微消遣一下嘍。。。。。。晚安!!