日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Unity3D实战】零基础一步一步教你制作酷跑类游戏(1)

發布時間:2024/3/13 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【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

這樣,我們便創建好了一個文件夾,接下來,創建Scene。點擊右上角的File菜單。

因為在創建工程時,Unity自動創建了一個Scene,所以我們只要保存它(或者用Ctrl+S快捷鍵)就行了。

將其保存至Scenes目錄下,命名為gameScene。


創建道路

我們將目光投向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中觀察物體的距離,離得遠了自然就小了嘛~好了,道路創建完畢了,接下來接著創建人物吧~

創建人物 (沒有人物的游戲還算游戲嗎!——當然算)

首先提供一個模型的下載地址,是網上找的,畢竟我是程序猿不是建模獅TAT

unity3d手游卡通動畫角色模型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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产欧美a| 毛片毛片毛片毛片毛片毛片毛片毛片 | 人妻体内射精一区二区三区 | 91理论片午午伦夜理片久久 | 国产精品亚洲一区二区三区在线观看 | 国产亚洲精久久久久久无码77777 | 三级免费网站 | 国产精品第13页 | 天堂中文在线免费观看 | 操丝袜少妇 | 一区二区三区偷拍 | 久久精品视频在线 | 国产一区二区三区四区五区 | 天天插日日插 | 国产精品午夜视频 | 毛片999| 91精品专区 | 国产成人久久精品流白浆 | 色婷婷av一区二区三区在线观看 | 久久久久性 | 日韩亚洲一区二区三区 | 国产精品久久77777 | 一区二区有码 | h片观看 | 韩国av一区二区三区 | 欧美视频免费看欧美视频 | 三级在线国产 | 国产乱free国语对白 | 亚洲一区二区高清 | 日本在线免费播放 | 一区二区三区国产av | 色妞网站| 亚洲精品国产精品乱码不99按摩 | 国产精品无码永久免费不卡 | 亚洲一区二区三区网站 | 男女插插插视频 | 欧美视频直播网站 | 在线播放a | 少妇被狂c下部羞羞漫画 | 91麻豆精品一区二区三区 | 日韩av激情 | 久久久久久久9 | 亚洲成人av一区二区三区 | 精品国产乱码久久久久久88av | 大地av| 日韩欧美一二三四区 | 曰本三级日本三级日本三级 | 免费一区视频 | 日韩欧美片 | 一本色道久久hezyo无码 | 视频一区中文字幕 | 美女高潮流白浆视频 | 日本美女性生活视频 | 女人喂男人奶水做爰视频 | 欧美大片免费观看 | 日韩成人免费观看 | 伊人22 | 麻豆影视在线播放 | 人妻少妇精品久久 | 欧美巨乳在线观看 | 能看av的网站 | 777黄色 | 激情91 | 亚洲免费观看高清在线观看 | 森林影视官网在线观看 | 女人被男人操 | 亚洲丁香婷婷 | 69精品一区二区 | 白丝av | 五级毛片 | 在线免费观看h片 | 日本在线免费看 | 黄色成人在线免费观看 | 一级片日韩| 欧美日韩中出 | 日韩在线一级 | 影音先锋男人站 | 99久久精品国产成人一区二区 | 一区成人| 日日射日日干 | 爱操av| 国产69精品久久久久久久 | 色窝| 最近中文字幕免费视频 | 欧美激情视频在线播放 | 亚洲最大福利网站 | 欧美色图17p| 免费激情片| 亚洲精品大片 | 亚洲97在线 | 欧美视频网站 | 亚洲欧美伊人 | 亚洲最新色图 | 欧美久久99 | 国产在线观看第一页 | 国产免费色视频 | 成人久久久精品乱码一区二区三区 | 日韩精品中文字幕一区 | 日韩国产在线一区 |