【Unity3D实战】零基础一步一步教你制作酷跑类游戏(1)
生活随笔
收集整理的這篇文章主要介紹了
【Unity3D实战】零基础一步一步教你制作酷跑类游戏(1)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
。 首先做個自我介紹,我是一名在讀的大三學生,軟件工程游戲開發方向。一直以來,我夢想著成為一名游戲開發者,所以在大三分方向時我毫不猶豫地選擇了游戲開發方向。剛剛接觸
Unity3D一段時間,現在需要大量的實戰來鞏固自己的知識。在我的個人博客中,將記錄下這些實戰經驗,供日后自己回顧,若是能幫助到同為初學者的朋友就更好了。本篇博客中,將記錄一個簡單的酷跑類游戲的實現,哪怕是從未接觸過Unity3D的朋友,也可以參照本文完成
自己的第一個酷跑類游戲。正文,即將開始!
所有游戲的第一步 創建工程
我們先打開Unity3D,這里本人使用的是Unity3D 5.3.0版本,目前最新的版本是5.3.2,大同小異,還未 安裝Unity的朋友可以到官網獲取,下載個人版的就可以了。(既然加入到開發者的行列,還是支持正版的比 較妥當。Unity3D個人版是免費使用的 而且完全足夠我們的使用 只有當盈利達一定額度時才需要購買Pro版 本) 點擊右上方的New后,將出現下圖所示界面。 在Projects下有兩行輸入欄,第一欄ProjectName自然就是工程名,第二欄Location則是工程的保存路徑。 3D/2D代表的是本游戲是3D游戲還是2D游戲,這邊我們選擇3D(其實開發2D游戲在本界面選擇3D也是可以的, 因為創建完畢后在工作面板依舊可以切換)。輸入好工程名與路徑后,我們點擊CreateProject,創建工程,等待其讀條完畢將自動打開工作面板。游戲的創造場所 工作面板
從上圖我們可以很清楚的看到Unity的工作面板大致分成幾個區域: 1.菜單欄 2.Scene視圖 3.Game視圖 4.Hierarchy視圖 5.Project視圖當然有的初學者朋友就會發現,可能我的工作面板和你們長的不大一樣,這是為什么呢?是不是下載錯了?別急。看到右上方的Layout了嗎,單機它。你就會看到這樣的一個列表 哦,對了,還有一個Project視圖長的有點不大一樣。 如圖所示,單機Project視圖最右邊的按鈕,將彈出一個列表,選擇第一個就好啦~當然這些視圖的位置擺放主要看個人愛好,大家怎么喜歡怎么來就好了,不會影響到游戲的開發。創建場景
場景,也就是Scene,我們可以把它看作是一個空間、一個小世界,游戲里面的物體存在于某一個場景中, 可以從一個場景跳轉到另外一個場景。比如我們打開游戲時,點擊開始游戲,就會從主菜單場景跳轉到游戲場景。在創建場景前,我們現在Project視圖下創建一個文件夾,命名為Scenes,這樣將工程下的文件按其類型進行 分類存放,便于管理。可以通過點擊Project視圖下的Create按鈕,可以在Project視圖中右鍵進行創建。點擊Create按鈕(或右鍵)
選擇Folder
命名為Scenes
創建道路
我們將目光投向Hierarchy視圖。這里我們能看到有兩行已存在的東西:Main Camera 和 Directional Light。從名字上我們很容易就能得出,一個是主攝像機,另一個是平行光。主攝像機是干什么用的呢,很簡單,游戲里面存在著各種各樣的物體,它們怎么被顯示到屏幕上的?Unity會將 攝像機所看到的景象渲染到我們的游戲窗口上。可以將攝像機當作是眼睛,代替我們觀察著游戲中的美好世界。平行光就是朝著一個方向照射的光,游戲里面必須要有光,從小到大,老師都教我們,為什么我們能看到東西? 因為光照射到物體上,反射到我們眼睛中。如果現實世界中沒有了光,我們將看不到任何東西。游戲中也是相似 的,當然會有點不同,如果將光刪去,則游戲中的物體將會變暗而不是完全看不見。這是因為Unity為我們創造 的世界中還有一種無處不在的環境光,它是接近于黑色的。 講了這么多,我們重回本小節標題來講。有的朋友看到圖就會問,誒,你怎么多了個立方體啊?這就是我們接下來要提到的,如何創建一個物體到游戲場景中。首先,點擊Hierarchy視圖的Create按鈕(或右鍵) 我們將會看到以下列表,選擇3D Object——Cube。 即可創建上文某圖中突然出現的立方體。這時我們選擇一下這個立方體,將視線投到右邊的Inspector視圖上。 從上到下看,看到一欄輸入框上面寫著Cube了嗎?這就是這個物體的名字,可以直接在這里修改它,也可以在 Hierarchy視圖中重命名。在它左邊的那個小勾,意味著是否激活它(Active),如果將勾去掉,則將會發現在Hierarchy視圖中它的名字 變灰色了,游戲場景中它的身影也消失了,正如它悄悄的來.....Tag就是它的標簽,可以將一系列需要分類的物體進行歸類。 Layer是它所處的層,可以通過修改攝像機的屬性,指定允許它看到的層。 Transform中 很好理解的三個屬性 Position位置 Rotation旋轉角度 Scale縮放大小。先講到這,因為Transform中有我們現在需要操作的屬性。將鼠標移動到任何一個XYZ旁邊 都會看到鼠標指針變了,按住左鍵左右移動,就能修改對應的值。這里我們手動修改Scale的值。如下圖所示。 就會看到場景中的Cube發生了相應的變化。 這樣像不像一條筆直的路了?當然一條路是不夠跑的,按我們的速度,那可是像飛人一樣 咻的一聲就過去(誒 這說的好像是超人0v0)。既然是酷跑類的游戲,那就應該讓它的路無限延長,跑的腰酸背痛腿抽筋才行!我們這里的思路是,創建兩條路,當跑到路1的X位置時,將路2拼接到路1后面,而跑到路2的X位置時,再將 路1拼接到路2后面,不斷循環循環循環,直到天崩地裂海枯石爛...好了,我們先來創建第二條路,有人就會問,是不是又得創建Cube啦 是不是又要修改Scale啦?恭喜你,答對了!不過我們這邊創建出來的是完全一樣的兩條路(就算有一些不一樣,在什么東西都未加的時候, 它們都是這么一個像板一樣的Cube)。相信大家都很喜歡用復制粘貼功能,多方便啊,這里復制一下,在那里粘貼一下,少了不少功夫呢!所以我們這里 也用類似的功能。首先在Hierarchy視圖中選擇Cube,按Ctrl+D的快捷鍵,怎么樣,是不是出現了一個它的弟弟Cube(1)呢? 當然用復制粘貼也行的,右鍵Cube選擇Copy(或者Ctrl+C),右鍵Hierarchy視圖,選擇Paste(或者 Ctrl+V)。 這時就有人說了,你騙人!場景中明明還是一條道路,第二條呢!被它吃了嗎? (╯°Д°)╯︵ ┻━┻好吧,事實就是——真的被它吃了。開玩笑的啦 ̄ω ̄,你看到不到它是因為兩條道路重疊了!這時候,就該調整Transform的另外一個屬性,Position了!首先,選擇Cube(1),在Inspector視圖中將它的Position的X屬性修改成20。至于為什么是20呢,因為他們 的Scale中的X是20.Cube原本的大小是1*1*1,將Scale修改后,其X值就變成了1*20=20,也就是X方向上的 長度為20,而第一個Cube的X為0,第二個Cube自然要在X方向上距離它有20啦~ 看到了吧,第二條路出現了,我才沒騙你們呢! (╯°Д°)╯看到圖是不是有人會問了,奇怪了,你的Scene視圖中道路怎么變小了,變瘦了,減肥了咩?當然不是了,我們的道路這么苗條,怎么可能需要減肥嘛。至于它為什么會變小了(當然是因為減肥啦...好吧 我開玩笑的),那是因為我用鼠標滾輪調整了在Scene中觀察物體的距離,離得遠了自然就小了嘛~好了,道路創建完畢了,接下來接著創建人物吧~創建人物 (沒有人物的游戲還算游戲嗎!——當然算)
首先提供一個模型的下載地址,是網上找的,畢竟我是程序猿不是建模獅TATunity3d手游卡通動畫角色模型Cartoon Character For Mobile Game
你會得到如下的UnityPackage。 將它放在一個合適的目錄,這里有個重要的事情:必須是英文路徑!必須是英文路徑!必須是英文路徑!不然的話Unity是無法正確加載它的。至于要怎么使用,雙擊咩?并不是。我們繼續切換到剛才的工作面板中,右鍵兵選擇Import Package——Custom Package,然后選擇剛才的資源包。 然后在出現的面板中選擇All 再點擊Import。 然后就能在Project視圖下看到多了一個Model文件夾。 我們選擇并拖動character這個文件,將其拖動到Hierarchy面板中,然后我們就會看到它出現在了場景中。 但是有個問題,它.....太大了!!( (╯°Д°)╯︵ ┻━┻這個胖子怎么和作者一樣不減肥!) 剛才上面好像提到了什么不得了的東西...不管它了!我們來讓這胖紙變的瘦小一點吧(無辜的胖紙:我明明是 巨人國的,才不是胖紙呢!)是的,聰明機智勇敢美麗善良可愛的你沒有猜錯,就是修改Scale中的值,將其都設成0.1吧(嗬嗬嗬,讓他變 矮子) 然后就會發現,他真的變矮了!啊不是,他真的變小了!! 接下來,我們要修改一下他的朝向,總不能讓他往旁邊跑跳下去吧!所以我們修改一下Transform中唯一現在 還未修改過的值,Rotation! 我們將Rotation中Y的值修改成90,也就是將其繞著Y軸旋轉90度,他就正常的朝著無量(亮)的前方了!讓人物“動”起來 添加動畫
你們看這矮胖紙和筆者一樣傻愣愣地一動不動地發呆,這這么行!生命在于運動,我們讓他從現在開始,動起來!首先,單擊Hierarchy面板中的character,讓其屬性顯示在右邊的Inspector視圖上。然后在Project視圖中 找到character,點擊它左邊的小三角,在出現的一大堆列表中找到run。這是一個動畫文件,將其拖動到右方 Inspector視圖的空白處。仔細觀察,會發現它自動創建了一個character.controller文件,并賦給了 character物體對象的Animator中的Controller。 點擊工作面板正中央上方的控制條中的播放按鈕,運行該場景,就會發現主角跑了起來~(我想起了在夕陽下的 奔跑,那是筆者那個胖紙逝去的青春...) 奔跑動畫添加完畢。做下一步事情。讓人物動起來 人物控制器
在Unity的Standard Assets里面是有第一人稱和第三人稱控制器的。不過既然是入門教程,我們還是盡量自 己寫一個簡單的人物控制器來操控人物,畢竟這個Demo也就這么幾個地方需要寫代碼...首先我們為了方便管理,在Project中創建一個文件夾,命名為Scripts,然后在該文件夾下創建一個C# Script,命名為moveController.cs。這里有個非常重要的一點,盡量在創建時直接命名,如果已經創建好了, 右鍵——重命名(或按F2)也是可以的,但是這樣重命名的話,需要打開腳本將其類名一起對應修改。否則編譯器 會報錯的。 然后雙擊打開該csharp文件。這里筆者使用的是VS2015,大家可以選擇自己喜歡的coding工具,修改默認設置 在工作面板的菜單欄——Edit——Preferences中的External Tool中修改。 打開該csharp文件后,我們可以看到下圖所示源文件。 我們先聲明一個浮點型變量,并將其訪問權限定為public,默認值為5.0f。然后在Update()函數中添加一行。 這里筆者要提到一件事,今后的所有代碼,筆者都盡量用圖片的形式顯示,而不直接貼出來,這是為了讓大家能 親手去敲出這些代碼,而不是一味的復制、粘貼。筆者身邊很多朋友都喜歡復制、粘貼,但是這樣,真的不好, 一點好處也沒有,哪怕是你完全懂的知識。 因為 1.直接復制、粘貼,會讓你養成這種壞習慣。 2.復制、粘貼的東西,哪怕你看一百遍后讓你寫一遍,恐怕寫不出來。 3.筆者縮寫的代碼并不是最優方案,只是為了方便一些初學的朋友而盡量簡單。自己敲一遍可以想想有沒有其他 方案可以實現同樣或者更好的效果。 這里稍微講解一下代碼中的內容,因為比較簡單,我就一行一行的講。從上到下:1、2.兩句using xxxx;這是引用命名空間,Unity的基本要素在UnityEngine這個命名空間中。3.public class moveController:MonoBehaviour 這一行中,public代表了該類的訪問控制為 public(公共的),class是類的關鍵字,本行的意思是 聲明了一個訪問控制為public的類,類名為 moveController,其繼承于MonoBehaviour類。4.public float moveSpeed = 5.0f; 本行聲明了訪問控制為public的單精度浮點型(float)變量, 變量名為moveSpeed,其默認值為5.0f。注意這個f,有的朋友會經常忘記加,大家可以試試沒加f會怎么樣。 是的,編譯器會直接報錯。因為這個f代表了前面這個數字是float類型5.void Start() 這是預先聲明好的函數,Start將在MonoBehavior創建后在該幀Update之前被調用。6.void Update() 這也Unity預先聲明好的函數,游戲中的每一幀都會調用Update()7.transform就是游戲對象(GameObject)的Transform組件的實例類對象(還記得我們還調過Cube的 Scale、Position嗎)。transform.position指的便是游戲對象的位置。 a+=b等同于a=a+b。 new Vector3(1,0,0)這里是實例化一個Vecotr3的類對象,分別復制x=1 y=0 z=0.Vecotr3就是三維向量, 百度一下就知道什么是三維向量。new是用來實例化的,應該有不少學過C++還未接觸過C#的朋友會和我一樣曾經 在這個地方直接Vetor3(1,0,0)吧?大家可以試試,這樣會報錯的,如果沒有new實例化的話。 moveSpeed就是剛才我們聲明好的浮點型變量,用來代表每秒的移動速度。 Time.deltaTime 這個是指每一幀刷新的時間 也就是調用兩次Update()中間的間隔時間。按Ctrl+S保存,或者點擊左上方的保存圖標進行保存源文件。然后返回到Unity的工作面板上來。選擇Project中的moveController.cs文件,將其拖動至Hierarchy中的character上,在Inspector視圖 中確認已成功添加moveController.cs后,點擊運行按鈕,觀看效果。 就會發現我們的主角已經邁著他的小短腿跑起來了。而且并不是像之前那樣的原地踏步,而是朝著前方奔跑著, 跳躍著...哦對,還沒跳躍呢!接下來我們要做跳躍的控制。總結
以上是生活随笔為你收集整理的【Unity3D实战】零基础一步一步教你制作酷跑类游戏(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kaldi教程_赠书 | 全球稀缺的Ka
- 下一篇: OFFICE没有仿宋GB2312的字体