(本篇文章網誌版:http://shineright.blogspot.tw/2016/11/day-1-it.html)
「在一個繁星點點、無風無雲的夜晚,一群人在夜空下高歌。當他們唱到最高潮:『我要和天一樣高…』時,一顆流星恰好劃過天際。這群人誤打誤撞的願望頓時實現,他們四肢不斷延伸、再延伸,最後貫穿雲層,邁向星空,展開未知的旅程……」
(←示意圖)
我知道這個故事極度低能,但請原諒還有兩個遊戲Project同時在進行的我,腦袋實在不太夠用。
(↑另外進行中的兩個Project……有圖為證)
這次要做的遊戲跟大家小時候在Nokia3310上玩的「星際大戰」有87%相似。不同的是,主角不是穿梭在外太空的飛行船,而是想要「和天一樣高」的人們。
在他們不斷長高,邁向浩瀚蒼穹時,將遇到許多敵人(例如:蜜蜂、落石、鳥鳥、飛機等等),玩家必須觸控螢幕的左/右半邊來閃避敵人。途中,有機會接到繫在降落傘上掉落的裝備。不同裝備可發射不同的子彈或有不同的功能。撞到敵人將損失一格生命,用完三格生命後遊戲結束,分數依照長成的高度計算。
(←用繪圖軟體畫的遊戲畫面假想圖)
在進入正題前,先列一下這三十篇文章的大綱,但因為我沒有事先規劃,做到哪想到哪,所以不一定完全遵照大綱。
===以下Day 1文章正式開始===
廢話說完,終於進入正題了。先來介紹Unity的操作介面。
開一個2D的Unity Project,在上排的Windows選單選Layouts → Default,便能看到如下的介面。
大致介紹一下每個欄位的功能:
用Unity製作遊戲,通常會把一個遊戲分為許多場景(Scene),每個場景都可存入副檔名為.unity的檔案。遊戲選單、遊戲的每個關卡等等都可獨立成為一個場景,並以程式碼相互切換。Scene視窗主要用於場景佈置和關卡設計,在這個視窗內可以自動移動、縮放或旋轉組成一個場景的遊戲物件(Game Object)。左上角的按鍵:
或W、E、R鍵能分別用來控制遊戲物件的座標(Transform)、旋轉角度(Rotation)以及縮放比例(Scale)。
座標:
旋轉角度:
縮放比例:
位於左側的Hierarchy欄顯示所有存在場景上的遊戲物件。點擊右鍵或上方的Create鈕可以建立新的遊戲物件。在遊戲物件上按右鍵→delete則可刪除該遊戲物件。另外,在Hierarchy欄還可任意把一個遊戲物件拖至另一個遊戲物件上,讓兩個遊戲物件產生父子(parent child)關係。移動、旋轉或縮放一個父遊戲物件會連帶影響子遊戲物件的座標。
點選Hierarchy欄中的Game Object,再把滑鼠游標移到Scene視窗上按f鍵(f for focus),可使Scene視窗聚焦於該遊戲物件。以此可輕鬆選取在Scene視窗較難選取的遊戲物件。
預設的場景會自動產生一個名為Main Camera的遊戲物件,這就是把場景「錄」到遊戲畫面用的攝影機(下面Game欄會詳述)。
Game視窗顧名思意是顯示遊戲畫面用的。按上方的按鈕
可使Unity進入遊戲預覽模式(Play Mode)。Play Mode可實際測試場景的運作,甚至可在Inspector(以下詳述)或Scene欄中即時調整遊戲物件的數值或座標,然而調整後的數值離開Play Mode後便會復原。
要將Scene中的物件顯示於Game視窗,必須在場景上放置擁有Camera Component(以後將詳述Component)遊戲物件。在Hierarchy欄中可以輕易新增Camera。
下方的Project欄其實就是一個檔案瀏覽器,用來管理所有製作遊戲需要的檔案(即Assets),如音樂、圖片、3D模型、遊戲腳本程式(Script)、預設遊戲物件(Prefab)等等。
通常會在Assets資料夾建立子資料夾來整理眾多的檔案,如下圖所示。
Inspector欄可以看見所有關於一個遊戲物件的資料──它的名稱(Name)、標籤(Tag)、圖層(Layer)、座標、擁有的元件(Component)等等。(關於Tag、Component以後會詳細介紹。)在Inspector欄中可輕易更動一個遊戲物件的數值,就算進入Play Mode也一樣(但離開Play Mode後數值將重置)。
Console欄會顯示遊戲中的錯誤訊息或警告訊息。此外,也可在Script中加入print()或Debug.Log()以在Console欄顯示除錯訊息。(使用print()函數的類別(class)需繼承(inherit)自MonoBehavior類別。以後寫Script時會再詳加說明)
除了寫程式外,做遊戲還得畫畫、做音樂。但我畫畫和音樂程度頂多和小學生差不多,所以這30天不會寫任何關於遊戲美術和遊戲音樂的文章,只會在每篇結尾處分享自己的繪圖進度。
今天完成所有可愛(?)的角色,以及他們撿到裝備(開心)和受到傷害(傷心)的表情。
本篇完。鐵人賽的旅程還要持續下去……