本書是Unity開發(fā)人員極為寶貴的資源。作者擁有豐富的經(jīng)驗(yàn),針對各種問題提供了簡單易學(xué)的解決方案。無論你是初學(xué)者還是經(jīng)驗(yàn)豐富的開發(fā)人員,都可以從本書中獲益。 Tom Brophy Mountains(獨(dú)立游戲《Florence》的開發(fā)商)首席程序員
前言歡迎閱讀本書!本書得以付梓,我們感到無比興奮,同時(shí)為自己付出的努力感到無比自豪。希望本書能成為你學(xué)習(xí)使用Unity 引擎開發(fā)游戲路上的忠實(shí)伙伴。Unity 是一個(gè)了不起的平臺,隨著使用次數(shù)的增加,你會(huì)發(fā)現(xiàn)越來越多如何使用Unity 以及為什么使用Unity 的新想法!這一切都令人興奮不已。相信我們,我們就曾有過這樣的體驗(yàn)。在Secret Lab,我們的大部分視頻游戲都是使用Unity 構(gòu)建的。在澳大利亞,我們構(gòu)建的兒童游戲非常出名,同時(shí)我們也曾為英國學(xué)院游戲獎(jiǎng)(British Academy Games Awards,簡稱BAFTA)以及和獨(dú)立游戲節(jié)大獎(jiǎng)(Independent Games Festival,簡稱IGF)的獲獎(jiǎng)游戲《樹林之夜》做出過貢獻(xiàn)。十多年前,我們首次接觸Unity,從那以后從未間斷過使用。在本書中,我們收集了一系列解決常見問題的技巧,這些都是在使用Unity 構(gòu)建視頻游戲時(shí)會(huì)反復(fù)遇到的問題。盡管本書無法面面俱到,詳細(xì)介紹Unity 的每一個(gè)小細(xì)節(jié),但我們希望能夠涵蓋到視頻游戲開發(fā)日常工作中所涉及的大部分難題。書中的技巧都是我們希望自己在第一次構(gòu)建游戲時(shí)能夠向人請教的問題。我們真心希望能夠幫助到你!使用Unity 是激動(dòng)人心的時(shí)刻。游戲開發(fā)的世界在不斷發(fā)展,越來越壯大、越來越有趣,如今我們使用的工具和技術(shù)也超出了往昔任何時(shí)刻。讓我們馬上行動(dòng)起來,創(chuàng)造偉大的游戲!關(guān)于本書的更多資源以及我們的其他書籍,請?jiān)L問我們的網(wǎng)站(http://www.secretlab.com.au/)。本書使用的資源你可以通過如下鏈接下載書中的代碼:https://github.com/thesecretlab/unity-gamedevelopment-cookbook-1e。此外,本書還有專屬網(wǎng)頁,你可以在那兒找到書中的代碼以及其他下載資源,地址是:http://secretlab.com.au/books/unity-cookbook-1e。本書面向的讀者對象本書假定你對C# 編程語言或C 、Java、Go、Swift、Python 或其他常見編程語言有基本的了解,但無需了解Unity。本書旨在幫助你快速構(gòu)建并運(yùn)行游戲。如果你喜歡我們的風(fēng)格,并想閱讀更多有關(guān)Unity 的資料,可以參考《Mobile Game Development with Unity》(鏈接:http://shop.oreilly.com/product/0636920032359.do),以及OReilly 的其他相關(guān)書籍。本書中的屏幕截圖都是在macOS 上截取的,但書中介紹的一切技巧普遍適用于Windows、macOS 或Linux 上的Unity。本書的主要內(nèi)容本書共分為12 章。? 第1 章介紹了使用Unity 需要了解的基本概念:游戲?qū)ο、組件、場景以及如何使用Unity 編輯器。? 第2 章介紹了Unity 的腳本接口,這是你通過編寫代碼定義游戲運(yùn)行方式的途徑。介紹完基本概念后,我們將深入研究一些實(shí)際的例子,包括如何編寫保存和加載系統(tǒng)、如何有效地使用對象,以及如何存儲(chǔ)數(shù)據(jù)才能同時(shí)方便代碼和Unity 訪問。? 第3 章學(xué)習(xí)了如何通過鍵盤輸入、鼠標(biāo)和游戲手柄等形式獲取用戶的輸入。我們還將討論如何設(shè)置能夠?qū)斎胧录ū热缬脩酎c(diǎn)擊)做出反應(yīng)的游戲?qū)ο蟆? 第4 章介紹了一些基本的數(shù)學(xué)概念,這些概念是游戲開發(fā)不可或缺的,例如向量、矩陣和四元數(shù)等。我們還將探索這些概念的實(shí)際用途,例如檢測物體是否在玩家面前。? 第5 章討論了Unity 內(nèi)置的2D 圖形和物理系統(tǒng)。我們將學(xué)習(xí)如何顯示、排序精靈以及如何讓它們相互碰撞。? 第6 章介紹了Unity 的材質(zhì)和著色系統(tǒng):材質(zhì)和著色器的工作原理,如何在Unity 中構(gòu)建著色器,以及如何獲得最佳場景效果。? 第7 章學(xué)習(xí)了如何利用Unity 的3D 物理系統(tǒng)執(zhí)行所需操作,以支持常見的游戲任務(wù),例如拾取和投擲物體,以及創(chuàng)建玩家可以乘坐的移動(dòng)平臺。? 第8 章介紹了Unity 的動(dòng)畫系統(tǒng),涵蓋的主題包括如何設(shè)置角色以混合不同的動(dòng)畫狀態(tài),以及如何將玩家移動(dòng)與角色動(dòng)畫相結(jié)合。我們還介紹了Unity 的攝像機(jī)系統(tǒng),并討論了如何設(shè)置跟隨目標(biāo)移動(dòng)的攝像機(jī)。? 第9 章主要討論了創(chuàng)建玩家互動(dòng)的游戲玩法。我們討論了各種常見的游戲任務(wù),比如管理分配給玩家的任務(wù)狀態(tài),記錄賽車是否走了太多捷徑,以及管理游戲中對象之間的傷害處理方式。? 第10 章學(xué)習(xí)了如何為角色添加大腦,包括檢測何時(shí)可以看到玩家的能力,在空間內(nèi)導(dǎo)航和避開障礙物的能力,以及找出藏在何處不會(huì)被看見的能力。? 第11 章介紹了Unity 的音頻系統(tǒng)。我們介紹了播放聲音的基礎(chǔ)知識,還介紹了一些高級功能,例如將音頻路由到多個(gè)組,以及在角色說話時(shí)自動(dòng)靜音。? 第12 章介紹了構(gòu)建供玩家查看和交互的界面的工具。最后一節(jié)介紹了如何通過擴(kuò)展編輯器在Unity 中構(gòu)建自己的工具。排版約定本書使用了下述排版約定。斜體(Italic)表示新術(shù)語、URL、電子郵件地址、文件名和擴(kuò)展名。等寬字體(Constant Width)表示程序片段,以及正文中出現(xiàn)的變量、函數(shù)名、數(shù)據(jù)庫、數(shù)據(jù)類型、環(huán)境變量、語句和關(guān)鍵字等。加粗等寬字體(constant width bold)表示應(yīng)該由用戶輸入的命令或其他文本。等寬斜體(constant width italic)表示應(yīng)該由用戶輸入的值或根據(jù)上下文確定的值替換的文本。使用代碼示例你可以通過如下鏈接下載本書的補(bǔ)充材料(代碼示例,練習(xí)等):https://www.secretlab.com.au/books/unity-cookbook-1e。本書的目的是幫助你完成工作。一般來說,你可以在自己的程序或者文檔中使用本書附帶的示例代碼。你無需聯(lián)系我們獲得使用許可,除非你要復(fù)制大量的代碼。例如,使用本書中的多個(gè)代碼片段編寫程序就無需獲得許可。但以CD-ROM 的形式銷售或者分發(fā)OReilly 書中的示例代碼則需要獲得許可。回答問題時(shí)援引本書內(nèi)容以及書中示例代碼,無需獲得許可。在你自己的項(xiàng)目文檔中使用本書大量的示例代碼時(shí),則需要獲得許可。我們不強(qiáng)制要求署名,但如果你這么做,我們深表感激。署名一般包括書名、作者、出版社和國際標(biāo)準(zhǔn)圖書編號。例如:Unity Game Development Cookbook by Paris Buttfield-Addison, Jon Manning, and Tim Nugent (OReilly). Copyright 2019 SecretLab, 978-1-491-99915-8。如果你覺得自身情況不在合理使用或上述允許的范圍內(nèi),請通過郵件和我們聯(lián)系,地址是 permissions@oreilly.com。OReilly 在線學(xué)習(xí)平臺(OReilly Online Learning)近40 年來,OReilly Media 致力于提供技術(shù)和商業(yè)培訓(xùn)、知識和卓越見解,來幫助眾多公司取得成功。公司獨(dú)有的專家和改革創(chuàng)新者網(wǎng)絡(luò)通過OReilly 書籍、文章以及在線學(xué)習(xí)平臺,分享他們的專業(yè)知識和實(shí)踐經(jīng)驗(yàn)。OReilly 在線學(xué)習(xí)平臺按照您的需要提供實(shí)時(shí)培訓(xùn)課程、深入學(xué)習(xí)渠道、交互式編程環(huán)境以及來自O(shè)Reilly 和其他200 多家出版商的大量書籍與視頻資料。更多信息,請?jiān)L問網(wǎng)站:https://www.oreilly.com/。聯(lián)系我們?nèi)魏斡嘘P(guān)本書的意見或疑問,請按照以下地址聯(lián)系出版社。美國:OReilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中國:北京市西城區(qū)西直門南大街2 號成銘大廈C 座807 室(100035)奧萊利技術(shù)咨詢(北京)有限公司這本書有專屬網(wǎng)頁,你可以在那兒找到本書的勘誤、示例和其他信息。地址是:http://bit.ly/unity-game-dev-cb。如果你對本書有一些評論或技術(shù)上的建議,請發(fā)送電子郵件到errata@oreilly.com.cn。要了解OReilly 圖書、培訓(xùn)課程、會(huì)議和新聞的更多信息,請?jiān)L問我們的網(wǎng)站,地址是:http://www.oreilly.com。我們的Facebook:http://facebook.com/oreilly。我們的Twitter:http://twitter.com/oreillymedia。我們的YouTube:http://youtube.com/oreillymedia。致謝Jon 想感謝他的母親、父親以及整個(gè)大家庭中的其他人給予的巨大支持。Paris 想感謝偉大的母親,沒有她,自己將一事無成,也沒有任何熱情。近期他的母親就要提交博士學(xué)位以供評估,他相信母親一定能取得成功。Tim 想感謝父母和家人陪著他渡過平淡的每一天。本書得以付梓,我們要感謝Rachel Roumeliotis,她的能力和建議對于本書以及我們共同編寫的所有其他書籍來說都是無價(jià)的。我們非常期待經(jīng)常與她聯(lián)絡(luò)。感謝本書的編輯Jeff Bleiel。你在工作中非常冷靜、頭腦清晰而又充滿熱情,與你共事的時(shí)光身心愉悅。我們希望將來能與你合作共創(chuàng)更多的書籍!感謝撰寫本書的過程中所有給予過幫助的OReilly Media 員工,你們都無愧于各自領(lǐng)域的專家。OReilly Media 擁有大量才華橫溢的員工、合同工以及其他人才。他們在工作中都有著令人驚訝的出色表現(xiàn)。非常感謝Tony Gray 和蘋果大學(xué)聯(lián)盟(Apple University Consortium,簡稱AUC)給予我們以及上述相關(guān)人員的巨大推動(dòng)力。沒有你們的支持,就沒有這本書。還有Tony,如今你也在寫書了!還要感謝Neal Goldstein,在他的循循善誘下,我們才有了創(chuàng)作本書的想法,當(dāng)之無愧的首功之臣。我們感謝MacLab 眾人(他們很清楚自己的目標(biāo),并帶領(lǐng)著Admiral Dolphin 團(tuán)隊(duì)走向下一個(gè)神話)的支持,以及Christopher Lue 教授、Leonie Ellis 副教授和塔斯馬尼亞大學(xué)的工作人員。感謝Mars G. 給予的支持,還要感謝Dave J. 的咖啡。如果你有機(jī)會(huì)來澳大利亞塔斯馬尼亞州的霍巴特,一定要去Yellow Bernard 喝杯咖啡 最好喝的咖啡。感謝技術(shù)審閱者們給予的全面且專業(yè)的建議,為我們提供了很大幫助。最后,非常感謝您購買我們的書,在此至上最真誠的謝意!如果您有任何反饋,請發(fā)送電子郵件至lab@secretlab.com.au,或者通過推特聯(lián)系我們@thesecretlab。
Paris Buttfield-Addison博士是一名游戲設(shè)計(jì)師、計(jì)算研究人員,他對法律充滿了興趣,同時(shí)也是游戲開發(fā)工作室Secret Lab的聯(lián)合創(chuàng)始人。Jon Manning博士是一名精通Swift、C#以及Objective-C等技術(shù)的軟件工程師。作為Secret Lab的合伙創(chuàng)始人,他創(chuàng)建了流行框架Yarn Spinner,并參與制作了英國學(xué)院游戲獎(jiǎng)(British Academy Games Awards,BAFTA)獲獎(jiǎng)游戲《樹林之夜》。Tim Nugent是一名移動(dòng)應(yīng)用開發(fā)人員、游戲設(shè)計(jì)師以及計(jì)算研究人員。