1. 程式人生 > >「Unity2D」使用Unity建立一個2D遊戲系列-1

「Unity2D」使用Unity建立一個2D遊戲系列-1

安裝unity並且建立你的第一個場景

在第一章,你將會學習到一些非常基本的內容:首先是unity的下載和安裝,其次是準備建立我們遊戲內的第一個場景。

配置你的環境

我們從簡單的部分開始:下載和配置Unity。

在這裡輸入圖片描述

安裝Unity

官方網站下載最新的版本。啟動可執行的檔案,之後一切都會正確的安裝。

選擇一個程式碼編譯器

Unity是依附於MonoDevelop(4.0.1目前)來編寫程式碼。

Windows

如果你在Windows環境下,那麼你可以(也應該)選擇另一個選項:

同樣:下載並且安裝,雖然下載和安裝將會花費一些時間,但是整個過程將會非常簡單因為其捆綁了所有你所需要的。之後,在Unity的設定中,將Visual Studio設定為你的預設編輯器。

在這裡輸入圖片描述

不可不知:Unity是不可能使用Visual Studio 2013 Express 的除錯工具。你需要專業版的Visual Studio並且要買UnityVS外掛。在Express版本中,你將會有一個更好的程式碼編輯器,但缺乏一個除錯工具將會很嚴重。

Mac OS X

MonoDevelop 4和Xamarin Studio非常相似。也就是說它比之前Unity版本的舊的MonoDecelop 2要好很多。雖然還不是非常完美,但是如果你是在Mac環境下,那麼它仍然會是你的最佳選擇。

哪種語音

Unity允許你使用三種語言進行編碼:JavaScript(UnityScript),C#和Boo。

我們強烈的推薦你使用C#。它更強大並且更少出錯。此外,本教程是用C#編寫的。

如果我完全是一個Unity新手?

如果你對於Unity是一個完全的新手,在本教程中,我們講盡我們最大的努力來進行講解。

學習去使用Unity的主介面相對來說比較容易。你可能在你第一次開啟這個軟體的時候被嚇到,但隨著時間你會慢慢適應它。

這裡有一些其他的我們找到的非常有趣並且可以輔助我們課程的東西:

  • Official Unity editor tutorials:官方的視訊都是非常好的。你應該花費一個下午的時間來觀看所有的——我們保證你不會浪費時間的。

  • Unity Patterns:一個有很多好的文章和工具的新網站。如果你對概念不是很清楚的話,協同程式的教程將是必讀的。

第一個場景

建立一個新的專案

進入檔案選項,然後建立一個新的專案。暫且不需要檢測任何的標準包,你可以在之後需要的時候再匯入,否則可能會使得你很困惑。

在這裡輸入圖片描述

選擇2D設定。像之前一樣,你之後可以在專案設定裡改變這個設定。

不要擔心專案名稱。這個專案名稱是在選項中定義的,並且想要改變整個專案的名稱只需要重新命名這個資料夾。

準備專案

正如Damien在另外一個教程中所說的,如果你打算使用Git或者SVN,首先你需要做的就是為團隊協作開啟一些模糊設定。

不要做別人已經做過的事情,如果你感興趣的話只需要檢查這個教程。:)

Unity佈局和麵板

你現在看到的是一個漂亮的空的場景。這是我們正在使用的佈局,但是你應該花費一些時間將其個性化設定為你想要的介面。我(Damien)個人喜歡讓控制檯安置在遊戲檢視的旁邊,但是如果你是小螢幕的話,你可能會使用標籤而不是面板。

在這裡輸入圖片描述

在你建立遊戲之前,花幾分鐘時間來組織一下你的專案和場景。

我們建議在Unity“Project”面板中建立資料夾來管理你的東西。這些資料夾將會科學的被建立在你的專案中的Assets資料夾中。

注:“Assets”資料夾是“superfolder”包含了任何你新增到“project”面板中的東西。在Unity中,它可能不是可見的,這取決於所選的佈局面板(單列或者雙列),但是如果你開啟檔案資源管理器,你就會看見它了。

在這裡輸入圖片描述

這是Pixelnest中我們的專案所使用結構的一個參考示例,你可以自行調整來滿足自己的喜好。

專案資源

在你的“Project”面板中,你可以找到各種不同型別的資源:

Prefabs

可重用的遊戲物件(例如:子彈,敵人,獎勵)

Prefabs在一個程式語言中可以看作是一個類“class”,可以例項化為遊戲物件。它是一個你可以在場景或者遊戲執行過程複製和改變的模具。

Scenes

一個場景基本上算是一個關卡或是一個選單。

對比於你在“Project”面板中建立的其他物件,場景在“File”選單中被建立。如果你想要建立一個場景,點選“New Scene”子選單,然後不要忘記將其儲存到“Scenes”資料夾下。

場景需要手動儲存,在對場景和其中的元素進行了改變之後卻沒有儲存,這是在Unity中的一個經典的錯誤。你的版本控制工具將不會看到任何的變化,直到你儲存之後。

Sounds

我猜這個很清晰了,看看你是否會將音樂分到另外一個資料夾中。

Scripts

所有的程式碼都在這裡。這個資料夾相當於一個C#專案的根資料夾。

Textures

紋理是你的遊戲中的精靈和影象。在一個2D專案中,你可以重新命名這個資料夾為“Sprites”。

這在2D專案中並不是非常重要的,但是保留這個命名“Textures”,Unity將會識別和自動執行一些任務。如果你想了解這個問題的話,你可以閱讀這個或者這個

注意“Resources”資料夾:如果你之前已經使用過了Unity,那麼你可能知道“Resources”是一個非常有用而且獨特的資料夾。它允許你在指令碼中載入一個物件或者一個檔案(通過使用靜態的Resources類)。

我們將不會使用它直到最後(在關於選單的這一章)。因此,為了簡化,我們現在決定不使用它。

我們的第一個遊戲場景

“Hierarchy”面板包含了場景中可用的每一個物件。這些都是當你按下“Play”按鈕,開始遊戲時候所操縱的物件。

對Unity來說,場景中的每一個物件都是一個“game object”。你可以在根場景中建立一個物件,或者建立一個遊戲物件的孩子物件。你可以在任何時刻移動一個物件來改變它的父物件。

在這裡輸入圖片描述

正如你所看到的,在Level物件下我們有三個孩子物件。

空物件

在Unity中的一個訣竅是建立一個空的物件並且將其作為其他遊戲物件的一個“folder”。這將會簡化你場景的層次結構。

在這裡輸入圖片描述

確保他們都是在(0,0,0)的位置上,這樣你將可以更容易的跟蹤他們。位置並不重要,因為空物件並不使用它。

注意:改變位置將會影響孩子的相對位置。在本教程中將不會討論這個問題,所以暫時讓空物件的位置是(0,0,0)。

將這些空物件看成是純粹的邏輯物件。

填充場景

預設情況下,一個新的場景被建立都將伴隨一個預設的主攝像機。暫時先不管它。

目前,你需要建立這些空的物件:

  • Scripts:我們將會在這裡新增全域性指令碼。我們使用這個物件來附加一些與其他物件並不相關聯的指令碼。例如,我們將會附加一個“Game”管理指令碼到上面。
  • Render:在這裡移動攝像機。同時我們也將光線物件放到裡面。
  • level

在Level物件中,新增三個空的孩子物件:

  • 0 - Background
  • 1 - Middleground
  • 2 - Foreground

儲存這個場景到“Scenes”資料夾中。將其命名為你想要的(例如“Stage1”)。

你應該有:

在這裡輸入圖片描述

提示:預設情況下,一個遊戲物件的位置是相對於其父物件的。

這種行為也對攝像機遊戲物件產生了一個好的副作用:如果一個攝像機物件是一個物件的子物件,它將自動跟蹤其父物件的位置。如果這個攝像機物件在根場景中或者是在一個空的遊戲物件內,那麼視角將會是固定的。但是,如果你將一個攝像機物件放入一個移動的遊戲物件中,那麼這個攝像機將會在這個場景中跟隨著這個遊戲物件。

儘管如此,對於我們的遊戲,我們想要使攝像機固定,這也就是為什麼我們將攝像機物件放到Render這個空遊戲物件中。但是記住這個攝像機的屬性將會非常有用。

我們將會在之後的“Parallax Scrolling”章節中討論這個話題。

下一步

對於一個遊戲我們還有很多沒有實現,對嗎?

我們剛剛建立了我們遊戲的基本結構。在下一章中我們將會新增一些有趣的東西:背景和一些元素!