第1步:制作平面并將其放置在相機前
打開Unity并將場景另存為MainMenu。
在“層次結構”面板中單擊“創建-平面”。將其重命名為“背景”。
將主攝像機向下旋轉90度,并將其投影從“透視”更改為“正交”。
調整攝像機的變換,使其位于菜單上方8-10個單位,向下看。
縮放平面背景以完全適合相機預覽。
完成后,它的外觀應類似于上圖。
步驟2:點亮
添加燈光。為此,請在“層次結構”面板中選擇“創建”,然后單擊“定向光”。
定向光在3D空間中的什么位置都無關緊要。因此,無論如何,它都會提供相同的照明。
因此,在調整了照明的方向以照到背景上之后,請沿Y方向將照明燈提高20個單位左右,以保持視野清晰在場景視圖中。
我將燈光調整為具有(0,20,0)位置和(60,0,-20)旋轉的變換。
我也進行了更改再次將其強度設為0.4。
再次查看該步驟完成后的圖像。
第3步:添加紋理
我們的背景目前看起來很普通,但是我們可以輕松地對其進行調味。只需拿一臺數碼相機/智能手機,然后為方便,有趣的東西(例如地板,天花板,墻壁等)拍照,然后將其上傳到您的計算機即可。
為正在處理的Unity項目在Assets文件夾中創建一個名為Textures的新文件夾。右鍵單擊Unity中“項目”面板中的文件夾,然后選擇“在資源管理器中顯示”。將您拍攝的圖片復制并粘貼到Textures文件夾中。
在“層次結構”中選擇“背景”后,單擊圖片并將其從“項目”面板的“ Textures”文件夾中拖動到“檢查器”面板中,在此處將其添加為背景的新紋理。參見圖像。
步驟4:添加文本
使用頂部的“游戲對象”下拉工具欄創建一個空的游戲對象Unity窗口的重命名為“文本”。重置其變換。
在“層次結構”面板中單擊“創建-3D文本”。重置其變換。
重命名3D文本對象,然后輸入要在“檢查器”的“文本網格”組件中顯示的文本。
將其圍繞X或Z旋轉90度軸,以便在攝影機視圖中正確顯示。
將3D文本對象拖到“層次結構”中的空Text游戲對象中。
根據需要復制3D文本。
步驟5:轉到獲取一些字體(您已經擁有的字體)
您已經有很多字體。您可以通過打開資源管理器并轉到OS/Windows/Fonts下的名為Fonts的文件夾來訪問它們(在Windows上)。
在Unity項目面板中,在Assets中創建一個新文件夾并調用
。
將Unity項目所需的字體從計算機的fonts文件夾復制并粘貼到您在Projects資產文件夾中創建的新Fonts文件夾。
注意:這很可能會為每種字體復制幾個不同的文件,其中一個用于常規,粗體,斜體等。
選擇3D文本您要在“層次結構”面板中更改其字體,然后將所需的字體從項目面板的fonts文件夾中拖到Inspector的Text Mesh組件中標有“ font”的框中。
您可以更改3D文本的“文本網格”組件中的字體顏色,大小和其他屬性。如果您在“層次結構”中選擇了要編輯的3D文本,它將顯示在“檢查器”面板中。
文本很可能看起來有點模糊。您可以通過顯著增大字體大小來進行清理,盡管這會打亂相機的視圖,因此您必須重新調整相機和背景平面的大小。
步驟6:將鼠標懸停在其上時,使文本更改顏色
在項目面板中創建一個名為Scripts的新文件夾。
創建一個新文件夾CSharp腳本并將其命名為MouseHover。
在MonoDevelop中打開該腳本。
此腳本中包含三個功能。第一個告訴文本為原始顏色。第二個命令指示文本在鼠標觸摸時更改顏色,第三個命令指示文本在鼠標不再懸停在其上之后返回其原始顏色。
void Start(){
renderer.material.color = Color.black;
}
void OnMouseEnter(){
renderer.material.color = Color.red;
}
void OnMouseExit() {
renderer.material.color = Color.black;
}
通過將腳本從項目面板拖到層次結構中的3D文本對象的名稱中,將腳本添加到每個文本中。
為了使腳本起作用,我們需要在每個文本中添加對撞機3D文本,以便代碼知道鼠標是否在觸摸它們。
要添加對撞機,請在“層次結構”中選擇一段3D文本,轉到“檢查器”面板,然后選擇“添加組件-物理-撞機箱。在每個文本中添加對撞機框,然后選中“正在觸發”框。
通過單擊屏幕頂部中間的播放按鈕并懸停鼠標來測試按鈕是否更改顏色。
步驟7:編寫腳本來控制按鈕
創建一個新腳本并將其命名為MainMenu。將其歸檔在Scripts文件夾中,然后在MonoDevelop中將其打開。
聲明布爾(真/假)變量,您希望菜單上的每個按鈕都有一個。我有兩個按鈕,所以我寫了:
public bool isStart;
public bool isQuit;
然后,寫一個叫做OnMouseUp()的函數。釋放鼠標按鈕時將激活此功能,這是一種比OnMouseDown()更好的激活按鈕的方法,因為它可以防止在按住鼠標按鈕的同時重復執行該功能。
void OnMouseUp(){
if(isStart)
{
Application.LoadLevel(1);
}
if (isQuit)
{
Application.Quit();
}
}
Application.LoadLevel(1)加載游戲的場景編號1。 (菜單場景應為0級。您可以在“構建設置”的“文件”下更改哪個場景。)
Application.Quit()退出游戲,盡管這只會在游戲為作為PC/Mac應用程序打開。
第8步:讓按鈕做事!
添加每個按鈕的3D文本對象的MainMenu腳本。
由于您為按鈕的每個類別聲明了公共布爾,因此它們應顯示在檢查器中的每個按鈕上。轉到檢查器,并為每個按鈕檢查適當的布爾變量。看到上面的圖像,應該是什么樣子。
就這樣,您完成了!您可以在MainMenu腳本中添加其他代碼行,以確保其正常工作。只需告訴它單擊按鈕即可更改按鈕的顏色(與將鼠標懸停在按鈕上時,更改為其他顏色)。
void OnMouseUp() {
if (isQuit) {
Application.Quit ();
} if(isStart) {
Application.LoadLevel (1);
renderer.material.color=Color.cyan;
}
}
責任編輯:wv
-
軟件
+關注
關注
69文章
4968瀏覽量
87655 -
Unity
+關注
關注
1文章
127瀏覽量
21837
發布評論請先 登錄
相關推薦
評論