




已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 分類號 分類號 TP31TP31 U U D D C C D10621 408 2014 1248 0D10621 408 2014 1248 0 密密 級 公級 公 開開 編編 號 號 成成 都都 信信 息息 工工 程程 學(xué)學(xué) 院院 學(xué)學(xué) 位位 論論 文文 Frozen 游戲設(shè)計與實現(xiàn)游戲設(shè)計與實現(xiàn) 論文作者姓名 論文作者姓名 申請學(xué)位專業(yè) 申請學(xué)位專業(yè) 數(shù)字媒體技術(shù)數(shù)字媒體技術(shù) 申請學(xué)位類別 申請學(xué)位類別 指指導(dǎo)導(dǎo)教教師師姓姓名名 職職稱稱 論文提交日期 論文提交日期 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 Frozen 游戲設(shè)計與實現(xiàn)游戲設(shè)計與實現(xiàn) 摘摘 要要 為了學(xué)習(xí) Unity3D 游戲引擎 為了進(jìn)一步了解并熟悉該款引擎 本文描述 了如何制作了一個二維的跑酷類游戲項目 這個游戲的背景來源于一部叫做 冰雪奇緣 的電影 通過對該項目的制作和學(xué)習(xí) 來了解用 Unity3D 開發(fā)游 戲的利與弊 以及這款游戲引擎未來的優(yōu)勢 本文所述的游戲項目開發(fā)所用的 開發(fā)工具是 Unity3D 自帶的開發(fā)工具 叫做 MonoBehaviour 選擇的開發(fā)語言 是 C 該游戲項目是一個小型的 2D 游戲制作 開發(fā)周期短 實現(xiàn)所涉及的技 術(shù)也是學(xué)習(xí) Unity3D 必備的一些知識 但是也是一些重要的基礎(chǔ)知識 很多其 他的 Unity3D 游戲制作 也是通過把 Unity3D 的各個功能模塊一點點組織拼接 起來而成的 關(guān)鍵詞關(guān)鍵詞 Unity3D 游戲引擎 語言開發(fā)環(huán)境 跑酷游戲 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 the Design and Implementation of Frozen Game Abstract In order to know and learn more about Unity3D game engine this papers describes how I develop a parkour game project whose background comes from a movie called Frozen Through the study of this game project we will get to know the pros and cons to use the game engine and it s advantage of the future We did this game project using its own development tool named MonoBehaviour we used C as its development language This is a small 2D game with short development period and some basic techniques which are important knowledge Many other Unity3D games are the union of some Unity3D function parts Key words Unity3D game engine language development environment parkour game 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 目目 錄錄 論文總頁數(shù) 28 1引言 1 1 1UNITY3D 簡介 1 1 2UNITY3D 語言開發(fā)環(huán)境及開發(fā)工具 2 1 3UNITY3D 應(yīng)用 2 1 4UNITY3D 未來優(yōu)勢 4 2使用 UNITY3D 開發(fā)游戲的優(yōu)勢 4 2 1跨平臺的先進(jìn)技術(shù) 4 2 2輕松入門 5 2 3市場影響力廣 5 3研究現(xiàn)狀及設(shè)計目標(biāo) 6 3 1游戲簡介及動畫制作 6 3 2游戲類型 7 3 3游戲前景 7 3 4技術(shù)實現(xiàn)及其優(yōu)勢 8 3 5游戲項目設(shè)計目標(biāo) 8 4需要解決的問題 9 4 1游戲項目中要解決的問題 9 4 2碰撞檢測問題 9 4 3粒子系統(tǒng) 10 4 4函數(shù) 11 5游戲總體設(shè)計 13 5 1游戲設(shè)計準(zhǔn)備階段 13 5 2游戲設(shè)計制作階段 14 5 3游戲設(shè)計完成階段 14 5 4游戲玩法說明 16 6游戲簡介 16 6 1游戲背景 16 6 2敵人 16 6 3玩家 16 6 4分?jǐn)?shù)統(tǒng)計 16 7游戲?qū)崿F(xiàn) 16 7 1變量 16 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 7 2函數(shù) 17 7 3粒子系統(tǒng)的實現(xiàn) 19 7 4碰撞檢測的實現(xiàn) 21 7 5音效的實現(xiàn) 21 7 6游戲通關(guān) 22 7 7游戲失敗 23 8項目總結(jié) 23 8 1總結(jié)的目的 23 8 2關(guān)鍵性問題總結(jié) 23 8 3游戲開發(fā)周期 23 結(jié) 束 語 25 參考文獻(xiàn) 26 致 謝 27 聲 明 28 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 1 1 引言引言 1 11 1 Unity3D 簡介簡介 Unity3D 是由 Unity Technologies 開發(fā)的一個游戲引擎 操作界面如下圖 1 1 所示 它集快速性交互性于一體 帶有強(qiáng)大的渲染引擎 對 DirectX OpenGL 擁有高度優(yōu)化的圖形渲染管道 能夠允許開發(fā)者能夠高效直 觀的開發(fā)出 2D 或者 3D 游戲 是一個全面整合的游戲引擎 并且 Unity3D 游 戲引擎能夠十分方便的將開發(fā)出的游戲發(fā)布到各個平臺 如 iPhone Android 等 平臺 此外 還可以用 Unity Web Player 插件將作品發(fā)布成 網(wǎng)頁游戲 玩家只需下載這個很小的插件就能輕輕松松的玩 Unity 網(wǎng)頁版游 戲 Unity3D 游戲引擎通過使用植被系統(tǒng) Unitree 提供了大量的 Shader 供開發(fā) 者使用 這些 Shader 完全足以滿足開發(fā)者的需求 使得即使在低端硬件設(shè)備下 也 能 夠運行廣闊茂盛的植被景觀 打開地形編輯器 從左到右依次是 地形 拉 升降低 準(zhǔn)確的繪制地形高度 地形圓滑 地形文理繪制 地形植被繪制 樹木 地形植被繪制 草及小物體 地形參數(shù)設(shè)置 另外 它支持所有主要 的 文件格式 并能和其他應(yīng)用程序協(xié)同工作 它還用了 PhysX 的物理引擎 使得 開發(fā)者能夠輕松的實現(xiàn)各種物理效果 Unity 游戲引擎提供了柔和陰影與烘焙的 高度完善的光影渲染系統(tǒng) 它的著色器整合了易用性 靈活性和高性能的特點 目前 Unity3D 游戲引擎最新版本是 Unity4 0 它能將你的作品發(fā)布到 MAC Windows 安卓等十個以上當(dāng)今盛行的平臺 此外 購買功能更加強(qiáng)大 的正版 Unity3D 游戲引擎 經(jīng)授權(quán)之后可以安裝在 2 個不同的系統(tǒng) 如一個 Windows 一個 Mac 官方網(wǎng)址是 Unity3D 游戲引擎研討會正在茁壯發(fā)展 第一次 Unity3D 游戲引擎研討 會 是在 2010 年 5 月 舉辦地點是在韓國 引發(fā)了許許多多的商家投資并簽訂了引 擎預(yù)定協(xié)議 亞洲作為 Unity3D 游戲引擎公司的一個重要戰(zhàn)略地 2013 年在上 海舉辦了研討會 不久 Unity3D 游戲引擎公司又宣布取消支持對 Flash 的支持 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 圖 1 1 Unity3D 操作界面 1 21 2 Unity3D 語言開發(fā)環(huán)境及開發(fā)工具語言開發(fā)環(huán)境及開發(fā)工具 Unity3D 是一款綜合型的游戲開發(fā)引擎 其中 MonoBehaviour 是該公司 自 己開發(fā)的一個編譯工具 自然跟 Unity3D 是十分兼容的 比如調(diào)試等就十分方 便 當(dāng)然 也可以選擇自己的編譯工具 如 Visual Studio 2010 只需要在菜單 里面設(shè)置一下默認(rèn)編譯工具就行 這樣在你創(chuàng)建并打開代碼文檔時就默認(rèn)打開 了你所設(shè)置的編譯工具 目前 Unity3D 只允許 3 種編程語言 C javascript Mobo 其中 C 運用較為廣泛 因為它的兼容性比較好 便于更 好的發(fā)布到各個平臺 1 31 3 Unity3D 應(yīng)用應(yīng)用 目前 用 Unity3D 游戲設(shè)計引擎開發(fā)手機(jī)游戲的比較多 如勇者之心 神 廟逃亡系列 憤怒的小鳥等 也有用來開發(fā)單機(jī)游戲的 如軒轅劍六 搗蛋豬 等 網(wǎng)頁游戲諸如新仙劍 Online QQ 樂團(tuán)等 部分游戲截圖如圖 1 2 1 3 1 4 所示 在虛擬現(xiàn)實方面 只需要將在 Maya 或者 Max 等其他三維 軟件里面做出的模型導(dǎo)出為 fbx 格式 然后導(dǎo)入 Unity3D 設(shè)置攝像機(jī)代碼 UI Build 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 圖 1 2 神廟逃亡 圖 1 3 憤怒的小鳥 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 圖 1 4 軒轅劍 1 41 4 Unity3D 未來優(yōu)勢未來優(yōu)勢 很多游戲引擎起初都是很不起眼的 Unity 在 2004 年誕生于丹麥 后來 把 總部設(shè)在了美國舊金山 到 2014 年 其注冊人數(shù)已達(dá) 80 萬 僅是蘋果應(yīng)用商 店里面用 Unity 開發(fā)的游戲已達(dá)一千五百多個 在未來 隨著 Web IOS Android 等平臺越來越廣泛的應(yīng)用 因它強(qiáng)悍的跨平臺能力和易學(xué) 的功能界 Unity3D 游戲設(shè)計引擎必將變大炙手可熱 Unity3D 是開發(fā)者使用最廣的游戲引擎 目前有 53 1 的開發(fā)所開發(fā)的游戲 是通過 Unity3D 游戲引擎來開發(fā)制作的 其中在一項調(diào)查中顯示 開發(fā)選擇這 款引擎一個最重要的因素是它的開發(fā)周期短 之所以這樣 是因為他們都覺得 Unity3D 游戲引擎簡單易學(xué) 功能強(qiáng)大 有一定程序基礎(chǔ)的人只需要一兩個月 就能入門 2使用使用 Unity3D 開發(fā)游戲的優(yōu)勢開發(fā)游戲的優(yōu)勢 2 12 1 跨平臺的先進(jìn)技術(shù)跨平臺的先進(jìn)技術(shù) Unity3D 開發(fā)的游戲和應(yīng)用主要使用的是 C 語言 當(dāng)然前面介紹的其他的 2 種語言也可以 其編譯的過程根據(jù)目標(biāo)平臺的變化而不盡相同 在 PC Mac 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 和 Android 平臺上 你所寫的代碼會被系統(tǒng)編譯成字節(jié)碼 并且可以在 Runtime 用 JIT Just In Time 的縮寫 中文意思是即時編譯器 編譯器執(zhí)行 如果是在其他 的平臺上 那么游戲在執(zhí)行是代碼是需要進(jìn)行一個預(yù)編譯的 轉(zhuǎn)變成目標(biāo)機(jī)器 的本地代碼而執(zhí)行 這就是為什么 Unity3D 開發(fā)的游戲能夠支持多平臺 能夠發(fā)布到近十幾種 十分流行的平臺上去 如下面圖 2 1 所示 圖 2 1 Unity3D 多平臺性 2 22 2 輕松入門輕松入門 目前為止 注冊 Unity3D 用戶已達(dá)八十多萬 每天在線人數(shù)達(dá)二十多萬 你如果在學(xué)習(xí)使用 Unity3D 的時候可以隨時上官網(wǎng)論壇上去請求幫助 更重要 的一點是你所遇到的問題 其實在之前很多人都遇到過 這樣你的問題就很快 能得到解決 另外 Unity3D 的交互性特點可以讓你即使程序基礎(chǔ)不是很好也 能設(shè)計出你想要的游戲 比如有一個 2D 游戲叫挺過 1 分鐘 游戲場景只有一個 就是一個封閉的 長方形界面 一個人物左右移動躲避一個在理想狀態(tài)下在長方形里面彈來彈去 的球 隨著時間的增加 球的數(shù)量也會增加 這里涉及到的基礎(chǔ)知識只有幾點 如碰撞檢測 物理引擎 游戲大小只有幾 KB 但是這個游戲卻很有趣 吸引 力不少人 可以在無聊之際用來打發(fā)時間 2 32 3 市場影響力廣市場影響力廣 現(xiàn)在不管是哪行哪業(yè) 什么產(chǎn)品 都將就一個客戶需求量 也就是市場 那么 Unity3D 的市場怎么樣呢 同諸多游戲引擎不同的是 Unity3D 不僅僅處在 3D 游戲市場 也能夠制作 完美的 2D 游戲 Unity3D 支持很多平臺 Windows IOS Mac 等十余種 還 支持許多游戲機(jī) PS3 Wii 等 以及瀏覽器等等 市場范圍是如此之廣 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 在一項調(diào)查中顯示 一個開發(fā)者在開發(fā)一個 3D 游戲的時候 有 72 的人 首選的開發(fā)工具是 Unity3D 他們往往還選擇用 Unity3D 做一下視覺結(jié)構(gòu) 軍 事仿真等等 3 3研究現(xiàn)狀及設(shè)計目標(biāo)研究現(xiàn)狀及設(shè)計目標(biāo) 3 13 1 游戲簡介及動畫制作游戲簡介及動畫制作 游戲項目開發(fā)的游戲名稱為 Frozen 使用的游戲引擎為 Unity3D 開發(fā) 周期大約一個多月 代碼文件 16 個 開發(fā)語言為 C 游戲共有 6 個場景 分 別是開始場景 選關(guān)場景 關(guān)卡 1 關(guān)卡 2 勝利場景 游戲介紹場景 沒有失 敗場景 失敗的時候是繪制了一個窗口 讓玩家選擇是重新游戲或者退出游戲 游戲也有用到 Unity3D 動畫制作的功能 如游戲人物的跳躍 開始界面等 這 里將游戲動畫介紹一下 下面就不在敘述了 選中需要做動畫的一個游戲?qū)ο?然后選擇 Window Animation 進(jìn)入動畫編輯窗口 如下圖 3 1 所示 圖 3 1 動畫編輯窗口 做動畫之前應(yīng)該先存儲這個動畫原件 點擊紅色的圓形按鈕 并為動畫取 好名稱 存儲在 Animation 目錄下 然后在需要改變的屬性上面右擊 添加關(guān) 鍵幀 改變響應(yīng)屬性 點擊運行按鈕 動畫變完成了 需要注意的是 我們在 人物動畫做的是一個按空格鍵跳動的動畫 而不是讓他一直跳 那么就需要代 碼控制了 如下 void Start transform animation Stop void Update if Input GetKeyDown space 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 transform animation Play 3 23 2 游戲類型游戲類型 游戲項目所開發(fā)的游戲名稱為 Frozen 游戲操作十分簡單 空格鍵跳躍 來躲避雪球或者奪取雪花 Q 鍵發(fā)射飛鏢擊殺敵人 按游戲類型來分 本游戲?qū)儆谝环N冒險類游戲 Adventure Game 也是一 種跑酷類游戲 主要考察玩家的操作和對未知是好奇之心 引發(fā)他們的互動性 按游戲內(nèi)容來分 本游戲?qū)儆谝环N探索類游戲 通過不同的關(guān)卡 玩家可 以通過不同的方式來獲得游戲分?jǐn)?shù) 不停的進(jìn)行探索 按游戲載體來分 本游戲?qū)儆陔娮宇愑螒?按游戲平臺來分 本游戲可以發(fā)布到十多個平臺 具有廣大的平臺系統(tǒng) 按玩家人數(shù)來分 本游戲?qū)儆趩稳嗣半U過關(guān)游戲 是一個單機(jī)游戲 3 33 3 游戲前景游戲前景 如今手機(jī)游戲正在蓬勃發(fā)展 屬于一種朝陽行業(yè) 而且本游戲的設(shè)計背景 又源自于一部風(fēng)靡全球的美國動畫片 Frozen 電影海報如圖 3 2 所示 當(dāng)用 戶看見這個名字時會不經(jīng)意的去下載它 就客戶量來說 隨著這部電影的喜愛著的增加 加上手機(jī)用戶量龐大 因 此本游戲具有它的客戶量 就經(jīng)濟(jì)效益來說 游戲開發(fā)的時間和成本都很低 需要的資源很很少 卻能帶來很多的經(jīng)濟(jì)效益 就市場來說 由于 Unity3D 可以把產(chǎn)品發(fā)布到十多個目前流行的平臺 它 的市場面是十分廣大的 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 圖 3 2 電影 冰雪奇緣 3 43 4 技術(shù)實現(xiàn)及其優(yōu)勢技術(shù)實現(xiàn)及其優(yōu)勢 游戲項目使用 Unity3D 游戲設(shè)計引擎 其優(yōu)勢在于該引擎支持多平臺多種 開發(fā)環(huán)境 還有一個重點是它具備良好的交互性 因為開發(fā)一個游戲 最主要 的目的是讓它好玩 那么開發(fā)者在制作的過程中就能體會到游戲的可玩性是否 高 3 53 5 游戲項目設(shè)計目標(biāo)游戲項目設(shè)計目標(biāo) 設(shè)計該游戲的目標(biāo)是廣大的手機(jī)用戶 圖 3 3 亦可以發(fā)布至 Windows 等 其他平臺 具有廣大的目標(biāo)群 由于 Unity3D 具有先進(jìn)的跨平臺技術(shù) 你的作品只需要一次性編寫代碼 就能輕輕松松發(fā)布到多鐘平臺去 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 圖 3 3 手機(jī)游戲 4 4需要解決的問題需要解決的問題 4 14 1 游戲項目中要解決的問題游戲項目中要解決的問題 游戲項目要解決的問題很多 所以最關(guān)鍵的是先要管理好資源文件 分類 明確有條理 在項目文件的預(yù)設(shè)目錄下 共創(chuàng)建了 8 個文件夾 分別存放動畫 文件 材質(zhì)文件 模型文件 Prefab 文件 場景文件 代碼文件 音效文件和 紋理文件 游戲項目視圖 4 1 圖 4 1 游戲項目視圖 4 24 2 碰撞檢測問題碰撞檢測問題 Unity3D 中實現(xiàn)碰撞檢測的方式有兩種 碰撞器和觸發(fā)器 碰撞器有很多 的種類 如盒子碰撞器 球形碰撞器 膠囊碰撞器等 要使用這些碰撞器都必 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 須把該碰撞器組件添加到一個游戲?qū)ο笊厦?如果在檢視面板中勾選了 IsTrigger 那么就成了觸發(fā)器 下面介紹 MonoBehaviour 類里面兩個函數(shù) 1 MonoBehaviour OnTriggerEnter Collider collider 進(jìn)入觸發(fā)器 2 MonoBehaviour OnCollisionEnter Collision collision 進(jìn)入碰撞器 本游戲項目所涉及到的碰撞檢測都是進(jìn)入時的檢測 即剛發(fā)生碰撞 沒有 退出和逗留時的碰撞檢測 所以另外四個接口函數(shù)就不在贅述 具體可以去官 網(wǎng)查詢 添加碰撞檢測組件碰撞檢測器之后 在監(jiān)視器窗口顯示如下圖 4 2 圖 4 2 碰撞檢測器組件 添加方法 Component Physics Collider Component Physics Rigidbody Is Trigger 屬性在勾選狀態(tài)下 那么該對象就是觸發(fā)器 下面其它參數(shù)則是 設(shè)置碰撞體的大小 半徑 添加碰撞檢測組件剛體之后 在監(jiān)視器窗口顯示如下圖 4 3 圖 4 3 剛體組件 Mass 是質(zhì)量 Drag 是阻力 Angular Drag 是角阻力 Use Gravity 是否使用 重力 如果勾選物體將相對向下做自由落體運動 Is Kinematic 是否相對地面靜 止 如果勾選物體將相對地面靜止 Constraints 屬性塊是設(shè)置物體的位置和旋 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 轉(zhuǎn)是否靜止 例如勾選了 Freeze Position Z 那么物體在 Z 軸方向不能移動 用 腳本也不能讓它移動 這是很必要的 比如你做的是一個 2D 游戲 自然不希 望它在 Z 軸發(fā)生移動而影響碰撞檢測 4 34 3 粒子系統(tǒng)粒子系統(tǒng) Unity3D 自帶的粒子系統(tǒng)完全足以滿足開發(fā)者各種這方面的需求 比如在 制作煙霧 云雨 爆炸 火焰 天氣等 在創(chuàng)建好游戲?qū)ο蟛⑻砑恿W酉到y(tǒng)組 件之后 正如你所見的 會出現(xiàn)很多屬性 如圖 4 4 圖 4 4 粒子系統(tǒng) 圖 4 中所示的參數(shù)設(shè)置在運行后出現(xiàn)的效果是一個下雪的效果 具體各個 參數(shù)的意思 在這就不贅述了 舉幾個常用的參數(shù) Looping 是否循環(huán) 比如 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 此下雪的粒子效果 當(dāng)然要他循環(huán) 再如爆炸之類的就不需要循環(huán) Start Speed 初始速度 可以設(shè)置一個參數(shù) 也可以設(shè)置兩個 即在這兩個參數(shù)之間隨機(jī)產(chǎn) 生一個參數(shù) 這個比較常用 Start Scale 用法與 Start Speed 類似 4 44 4 函數(shù)函數(shù) 不管用什么編程語言 創(chuàng)建的腳本都必須繼承 MonoBehaviour 類 他包括 了許許多多的函數(shù) 諸如上述的碰撞檢測函數(shù) 如果在檢視器里面修改了腳本 文件的名稱 一定要記得在編譯器里面修改類名 不然就會出現(xiàn)異常的錯誤 這里介紹幾個常用的函數(shù) 1 MonoBehaviour OnGUI 接口有許多的屬性 如 GUI Label 用于繪制列 表 它有 6 個接口 1 static function Label position Rect text String void 2 static function Label position Rect image Texture void 3 static function Label position Rect content GUIContent void 4 static function Label position Rect text String style GUIStyle void 5 static function Label position Rect image Texture style GUIStyle void 6 static function Label position Rect content GUIContent style GUIStyle void 像游戲分?jǐn)?shù)統(tǒng)計等 又如 GUI TextArea 用于繪制文本區(qū)域 它有 4 個借口 這里不再贅述 最常用的是 GUI Button 設(shè)置各種按鈕 所有的 GUI 屬性都可 以在檢視器里面創(chuàng)建一個 GUISkin 來設(shè)置個性化的按鈕 圖片背景等 它有 6 個借口 1 static function Button position Rect text String bool 2 static function Button position Rect image Texture bool 3 static function Button position Rect content GUIContent bool 4 static function Button position Rect text String style GUIStyle bool 5 static function Button position Rect image Texture style GUIStyle bool 6 static function Button position Rect content GUIContent style GUIStyle bool 這里將舉例如何使用個性化的按鈕 代碼如下 public GUISkin mySkin void OnGUI GUI skin mySkin 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 if GUI Button new Rect 300 200 200 100 GUI skin GetStyle beginButton Application LoadLevel Level 其中 mySkin 用來接收在檢視器窗口創(chuàng)建的 GUISkin 游戲?qū)ο?在游戲?qū)?象里面你可以指定個性化的按鈕圖片 可以是兩張 一張是正常情況下的大小 指定在 Custom Styles 的 Normal 和 On Normal 屬性上面 一張是鼠標(biāo)移動上去 的大小 指定在 Custom Styles 的 Hover 和 On Hover 屬性上面 如下圖 4 4 這 樣就會達(dá)到鼠標(biāo)移動上去按鈕變大的效果 圖 4 5 個性化按鈕 2 MonoBehaviour Start 和 MonoBehaviour Update 函數(shù) MonoBehaviour Start 函數(shù)就是對游戲的一些預(yù)設(shè) 并且在游戲執(zhí)行的整個 周期中 此函數(shù)只調(diào)用一次 比如隱藏光標(biāo) void Start Screen showCursor false 隱藏光標(biāo) Screen showCursor true 顯示光標(biāo) 通過這樣的設(shè)置 我們就可以編寫響應(yīng)的代碼來實現(xiàn)個性化的光標(biāo)了 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 MonoBehaviour Update 函數(shù)功能就是在執(zhí)行完 MonoBehaviour Start 函數(shù)之 后 游戲的每一幀都會執(zhí)行該函數(shù) 來繪制每幀的畫面 這是非常重要的 否 則游戲?qū)o法運行 精靈動畫的函數(shù)就必須放在這里面 5 5游戲總體設(shè)計游戲總體設(shè)計 5 15 1 游戲設(shè)計準(zhǔn)備階段游戲設(shè)計準(zhǔn)備階段 在游戲項目準(zhǔn)備階段 最主要的事情就是準(zhǔn)備游戲素材 在選材 美工等 方面都有嚴(yán)格的要求 首先是制作按鈕 如菜單按鈕 退出按鈕 選擇按鈕等 等 其次是場景背景圖片 力求能表達(dá)游戲主題 美觀 還有精靈動畫序列圖 的制作 即游戲玩家和敵人 還有游戲失敗窗口的制作 飛鏢 雪花等等 5 25 2 游戲設(shè)計制作階段游戲設(shè)計制作階段 在游戲項目的制作階段 首先創(chuàng)建好六個場景并取好名字 在開始界面 點擊開始游戲或者游戲操作介紹按鈕就會分別進(jìn)入到關(guān)卡一或者游戲介紹場景 關(guān)卡一獲得的分?jǐn)?shù)達(dá)到 100 分 將自動跳轉(zhuǎn)到關(guān)卡選擇界面 然后才能進(jìn)入關(guān) 卡二 繼續(xù)游戲 達(dá)到 200 分后 跳到勝利場景 游戲結(jié)束 每個場景都有相 應(yīng)的腳本文件 許許多多的游戲?qū)ο?每個游戲?qū)ο蟮慕M件都不盡相同 各有 不同的功能 在下面將會有說明 5 35 3 游戲設(shè)計完成階段游戲設(shè)計完成階段 目前游戲項目已經(jīng)完成 能夠順利運行 并有音效 天氣效果等 開始界 面如下圖 5 1 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 圖 5 1 開始界面 點擊開始游戲?qū)⑦M(jìn)入游戲 如圖 5 2 所示 圖 5 2 游戲界面 點擊游戲介紹將進(jìn)入游戲介紹界面 如圖 5 3 所示 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 圖 5 3 介紹界面 5 45 4 游戲玩法說明游戲玩法說明 游戲所設(shè)計的玩法十分簡單 空格鍵跳躍 其實跳躍的時候播放的是一個 動畫 按 Q 鍵發(fā)射飛鏢 飛鏢是一個 Prefab 對象 每按一次 Q 都將實例化一個 該 Prefab 對象 并在幾秒后銷毀 如果玩家不小心碰到雪球或者飛鳥 都將導(dǎo) 致游戲失敗 雪球不能擊毀只能跳過 飛鳥能通過飛鏢擊毀并獲得 5 分 在關(guān) 卡二 如果玩家跳躍的時候能夠獲得雪花會加 10 分 不過這會導(dǎo)致躲避雪球的 難度增加 另外隨著時間的增加 分?jǐn)?shù)也會每秒長 1 分 游戲玩家的生命數(shù)只 有一條 6 6游戲簡介游戲簡介 6 16 1 游戲背景游戲背景 游戲項目開發(fā)的背景故事源自一部正在熱映的美國動畫片 Frozen 這是 一個充滿冰雪和浪漫的童話世界 故事講述的是一個咒語讓美麗的王國被冰天 雪地永久覆蓋 而這個咒語正發(fā)生在冰雪皇后艾莎身上 國王被冰封之后 艾 莎也失蹤了 樂觀勇敢的公主安娜在樂于助人的山民克里斯托夫的幫助下 帶 著他的坐騎馴鹿準(zhǔn)備出發(fā)去尋找安娜失蹤的姐姐 來重新拯救王國 破除這個 讓國家冰封的咒語 一路上的艱難坎坷 奇妙歷險 讓人回味無窮 催人淚下 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 因此 具有開發(fā)此游戲的必要性和緊迫性 隨著人們對電影的熱愛和追捧 也會對該游戲產(chǎn)生極大的興趣 6 26 2 敵人敵人 在安娜和山民克里斯托夫的歷險中 遇到過狼 雪崩以及惡劣的天氣 游戲敵人有兩個 一個是地上滾動的雪球 只能跳躍躲避 另外一個是隨 機(jī)速度和高度飛過來的鳥 擊毀鳥會加 5 分 6 36 3 玩家玩家 游戲玩家 Player 對象是一個跑動的人物 不停的跳躍躲避雪球 并發(fā)射飛 鏢來躲避飛鳥的攻擊 他的生命目前只有一次 以后可能會改動 6 46 4 分?jǐn)?shù)統(tǒng)計分?jǐn)?shù)統(tǒng)計 這里專門設(shè)計了一個腳本文件來統(tǒng)計分?jǐn)?shù) 分?jǐn)?shù)分為當(dāng)前分?jǐn)?shù)和最高分?jǐn)?shù) 當(dāng)前分?jǐn)?shù)會隨著游戲的變化不斷更新 每秒鐘加 1 分 擊中飛鳥加 5 分 獲取 雪花得并獲得 10 分 然后在進(jìn)入下個關(guān)卡當(dāng)前分?jǐn)?shù)清零 最高分?jǐn)?shù)是繼承的 MonoBehaviour PlayerPrefs 屬性 它具有本地保存數(shù)據(jù)的功能 能夠保存游戲 過程中獲得的最高分?jǐn)?shù) 7 7游戲?qū)崿F(xiàn)游戲?qū)崿F(xiàn) 7 17 1 變量變量 任何游戲的變量都非常的多 這里不再贅述 僅列舉幾個重要的全局變量 1 static int 型變量 m score 存放游戲當(dāng)前分?jǐn)?shù) 2 static int 型變量 HighScore 存放游戲最高分?jǐn)?shù) 3 static bool 型變量 isHitted 判斷玩家是否碰撞到飛鳥 雪球或者雪花 默 認(rèn)值是 false 4 GUISkin 型變量 mySkin 保存皮膚 用于制作個性化按鈕 列表等 7 27 2 函數(shù)函數(shù) 任何游戲的函數(shù)都非常的多 這里不再贅述 僅列舉一些重要的函數(shù) 1 bool myAniSprite int colsize int rowsize int colframestart int rowframestart int totalframes int framepersecond int totaltime bool moveDirection myTime Time deltaTime if totaltime 0 myTime 0 return isPlay int index int myTime framepersecond 1 index index totalframes int v index colsize if moveDirection size new Vector2 float 1 0 colsize float 1 0 rowsize u index colsize else size new Vector2 float 1 0 colsize float 1 0 rowsize u index colsize offset new Vector2 float u colframestart size x float 1 0 size y v rowframestart size y renderer material mainTextureOffset offset renderer material mainTextureScale size return true 此函數(shù)實現(xiàn)的功能就是精英動畫的播放 它的原理很簡單 比如一張 2 行 3 列的圖片 如圖 7 1 所示 劃分成 6 個塊 每幀渲染一塊 由于視覺暫留 就 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 會成為動畫 上述代碼最關(guān)鍵的就是計算精靈序列圖的 offset 和 size 值 并將 他們分別賦值如下 renderer material mainTextureOffset offset renderer material mainTextureScale size 然后系統(tǒng)就會在每幀執(zhí)行一次該函數(shù) 以達(dá)到角色運動的效果 圖 7 1 精靈動畫 2 private void DrawWindow int windowID GUI DrawTexture new Rect 0 0 Screen width Screen height loseWindow GUI Label new Rect 350 300 240 40 Score Score m score ToString GUI skin GetStyle label GUI Label new Rect 350 350 240 40 HighScore PlayerPrefs GetInt HighScore ToString GUI skin GetStyle label if GUI Button new Rect 300 400 200 200 GUI skin GetStyle backButton Application LoadLevel MainScene 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 此函數(shù)實現(xiàn)的功能是繪制窗口 如在玩游戲的時候 當(dāng)你要重新開始時 系統(tǒng)就會彈一個窗口 詢問你是否重新開始 3 IEnumerator PlaySound AudioClip soundName if audio isPlaying audio clip soundName audio Play yield return new WaitForSeconds audio clip length 此函數(shù)實現(xiàn)的功能是音效的控制 在什么時候停止 暫?;蛘卟シ诺?7 37 3 粒子系統(tǒng)的實現(xiàn)粒子系統(tǒng)的實現(xiàn) 游戲項目下雪的天氣效果就是通過 Unity3D 粒子系統(tǒng)來實現(xiàn)的 首先 創(chuàng) 建一個空白的 GameObject 然后把粒子系統(tǒng)游戲組件添加到里面 步驟如下 Component Effects Particle System 設(shè)置參數(shù)如下圖 7 2 7 3 7 4 所示 圖 7 2 雪粒子參數(shù) 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 圖 7 3 雪粒子參數(shù) 圖 7 4 雪粒子參數(shù) 其他選項不需要勾選就能呈現(xiàn)出下雪的效果了 7 47 4 碰撞檢測的實現(xiàn)碰撞檢測的實現(xiàn) 這里僅列舉一個碰撞檢測函數(shù) 首先得在相應(yīng)的兩個游戲?qū)ο笊厦嫣砑优?撞檢測器和剛體組件 具體步驟如下 Component Physics Collider Component Physics Rigidbody 注意不要勾選重力 代碼實現(xiàn)如下 void OnTriggerEnter Collider collider if collider gameObject name Player isHit true Score isHitted true 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 if collider gameObject name bullet Clone isHitBullet true SetPositionAndSpeed Score m score 5 該碰撞檢測函數(shù)使用的是觸發(fā)器 檢測的是玩家對象是否碰撞到飛鳥以及 飛鏢是否碰撞到飛鏢 進(jìn)而實現(xiàn)不同的游戲功能 7 57 5 音效的實現(xiàn)音效的實現(xiàn) 音效主要有背景音樂 人物音效 飛鏢音效等 實現(xiàn)游戲音效 只需要在 主像機(jī)添加一個 Audio Listener 游戲組件 具體步驟如下 Component Audio Audio Listener 然后在相應(yīng)的游戲?qū)ο笊厦嫣砑?Audio Source 游戲組件 具體步驟如下 Component Audio Audio Source 如圖 7 5 所示 圖 7 5 音效組件 最后再用代碼進(jìn)行相應(yīng)的控制就行了 7 67 6 游戲通關(guān)游戲通關(guān) 在玩家通過關(guān)卡一得到 100 分之后 將選擇進(jìn)入關(guān)卡二 如果再得到 200 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 分就將通關(guān) 進(jìn)入獲勝場景 此刻玩家可以看見自己分?jǐn)?shù)和最高分 選擇是否 重新開始游戲 選關(guān)場景如圖 7 6 所示 圖 7 6 下一關(guān)界面 7 77 7 游戲失敗游戲失敗 如果玩家在游戲過程中沒有躲避雪球或者飛鳥的攻擊 那么游戲就會失敗 游戲失敗之后 就會調(diào)用繪制窗口的函數(shù) 繪制一個選擇窗口 然后 玩 家可以選擇繼續(xù)游戲或者退出游戲 繼續(xù)游戲?qū)⒒氐接螒蜷_始界面 并進(jìn)入一 關(guān) 不能直接進(jìn)行第二關(guān) 即使之前通過了第一關(guān)也不行 8 8項目總結(jié)項目總結(jié) 8 18 1 總結(jié)的目的總結(jié)的目的 項目在開發(fā)的過程中 遇到很多的問題 是需要總結(jié)并記錄的 以便于下 次在遇到同樣的問題時 能夠快速高效的解決該問題 以節(jié)省游戲項目的開發(fā) 周期 降低開發(fā)的成本 并且 對一個已完成游戲項目的總結(jié) 在他人學(xué)習(xí)該 項目時 可以提供很好的幫助 8 28 2 關(guān)鍵性問題總結(jié)關(guān)鍵性問題總結(jié) 第一個關(guān)鍵性問題是精靈動畫在貼圖的時候遇到的麻煩 剛開始用是 Unity3D 的平面組件來進(jìn)行貼圖 但是貼圖用上去之后 運行時 精靈在運動 部分內(nèi)容來源于網(wǎng)絡(luò) 有侵權(quán)請聯(lián)系刪除 的時候是倒立的 在檢視器窗口中進(jìn)行手動旋轉(zhuǎn) 180 度之后 貌似問題解決了 但是在腳本控制精靈運動的時候就會出現(xiàn)意想不到的運動 比如代碼明明寫的 是讓精靈水平運動 但是精靈卻是斜著走的 然后 我又試著用盒子組件來進(jìn) 行貼圖 問題就更加千奇百怪了 最后 終于找到了解決辦法 用 Maya 創(chuàng)建 一個平面 讓這個平面的繞 X 軸旋轉(zhuǎn) 90 度 然后繞 Y 軸旋轉(zhuǎn) 180
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 可視化視角下高中數(shù)學(xué)教學(xué)的創(chuàng)新路徑
- 酒店服務(wù)質(zhì)量管理標(biāo)準(zhǔn)及流程
- 規(guī)?;翀鰯?shù)字化轉(zhuǎn)型的全球發(fā)展趨勢與挑戰(zhàn)
- 校園餐管理中食品安全風(fēng)險控制機(jī)制
- 友誼的話題探討話題作文9篇范文
- 國際法涉外法律事務(wù)知識
- 建筑設(shè)計理念與規(guī)范實踐案例分析
- 農(nóng)旅融合中的黨建作用及其重要性探討
- 主要城市地理位置數(shù)據(jù)表
- 教育成果展示表格-學(xué)生學(xué)業(yè)成績
- DL∕T 1430-2015 變電設(shè)備在線監(jiān)測系統(tǒng)技術(shù)導(dǎo)則
- 光伏項目系統(tǒng)調(diào)試方案
- AQ/T 1089-2020 煤礦加固煤巖體用高分子材料(正式版)
- 2024年廣東省初中學(xué)業(yè)水平考試生物押題卷
- MOOC 人格與人生-蘇州城市學(xué)院 中國大學(xué)慕課答案
- 經(jīng)濟(jì)學(xué)思維方式智慧樹知到期末考試答案2024年
- 口腔科醫(yī)師職責(zé)
- 四年級語文 囊螢夜讀微課-“江南聯(lián)賽”一等獎
- 手術(shù)器械的識別和使用方法
- 醫(yī)共體信息系統(tǒng)(HIS)需求說明
- 辦學(xué)許可證續(xù)期申請書
評論
0/150
提交評論