《Unity 3D游戲開發(fā)案例教程(第2版)》數字媒體類專業(yè)全套教學課件_第1頁
《Unity 3D游戲開發(fā)案例教程(第2版)》數字媒體類專業(yè)全套教學課件_第2頁
《Unity 3D游戲開發(fā)案例教程(第2版)》數字媒體類專業(yè)全套教學課件_第3頁
《Unity 3D游戲開發(fā)案例教程(第2版)》數字媒體類專業(yè)全套教學課件_第4頁
《Unity 3D游戲開發(fā)案例教程(第2版)》數字媒體類專業(yè)全套教學課件_第5頁
已閱讀5頁,還剩373頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Unity3D游戲開發(fā)案例教程(第2版)第1章

游戲概論第2章C#程序語言基礎第3章Unity3D游戲開發(fā)基礎第4章Unity游戲開發(fā)基礎案例第5章Unity3D游戲開發(fā)綜合案例全套可編輯PPT課件

本課件是可編輯的正常PPT課件第1章游戲概論單擊此處添加副標題內容本課件是可編輯的正常PPT課件了解游戲的基本概念與特征熟悉游戲的發(fā)展歷史了解游戲的不同分類及其特征本章學習要點:本課件是可編輯的正常PPT課件1.1游戲的概念與特征究竟什么是游戲?首先,游戲是一種行為活動;其次,游戲是以獲得快樂或自足為目的的;再者,游戲必須以自愿和自由為前提;最后,伴隨著游戲活動的展開,無論是有意識還是無意識,游戲本身都會被賦予某些規(guī)則。根據以上四種特性,來對游戲進行定義:游戲是以自愿和自由為前提、以獲得快樂和自足為目的且具有一定規(guī)則的行為活動。1.1.1游戲的概念本課件是可編輯的正常PPT課件1.1游戲的概念與特征1.共同經驗2.平等3.自由4.主動參與5.游戲世界1.1.2游戲的共性本課件是可編輯的正常PPT課件1.1游戲的概念與特征1.必須有道具和規(guī)則2.必須有目標3.游戲進程必須具有變化性4.必須具有競爭性1.1.3游戲的規(guī)則本課件是可編輯的正常PPT課件1.1游戲的概念與特征1.1.4電子游戲的特征1.文化性2.擬態(tài)性3.娛樂性4.商業(yè)性5.科技性本課件是可編輯的正常PPT課件1.2電子游戲的發(fā)展與演變1.2.1啟蒙時代本課件是可編輯的正常PPT課件

1.2游戲的發(fā)展與演變

1.2.2任天堂時代本課件是可編輯的正常PPT課件

1.2游戲的發(fā)展與演變

1.2.33D游戲時代本課件是可編輯的正常PPT課件

1.2游戲的發(fā)展與演變

1.2.33D游戲時代本課件是可編輯的正常PPT課件

1.2游戲的發(fā)展與演變

1.2.4手機游戲時代本課件是可編輯的正常PPT課件

1.2游戲的發(fā)展與演變

1.2.5VR時代及未來本課件是可編輯的正常PPT課件

1.3電子游戲的分類

1.3.1角色扮演類游戲分類元素游戲類型游戲類型細分按載體分類單機角色扮演游戲通常意義的RPG大型多人在線角色扮演游戲MMORPG按題材分類歐美角色扮演游戲歐美文化背景下的RPG日式角色扮演游戲日式幻想風格RPG國產角色扮演游戲中國玄幻、武俠RPG按游戲方式分類回合制角色扮演游戲標準RPG動作型角色扮演游戲A-RPG策略戰(zhàn)棋類角色扮演游戲S·RPG本課件是可編輯的正常PPT課件

1.3電子游戲的分類

1.3.2動作類游戲分類元素游戲類型游戲類型細分按畫面形式分類橫版過關類動作游戲傳統(tǒng)意義的動作游戲2D動作游戲2D通面的動作游戲3D動作游戲3D畫面的動作游戲按游戲方式分類傳統(tǒng)動作游戲標準ACT動作冒險類游戲融合了冒險解謎要素的ACT格斗類游戲FTG動作射擊游戲融合了射擊游戲要素的ACT動作型角色扮演游戲A·RPG本課件是可編輯的正常PPT課件

1.3電子游戲的分類

1.3.3體育競技SPG游戲本課件是可編輯的正常PPT課件

1.3電子游戲的分類

1.3.4模擬類游戲本課件是可編輯的正常PPT課件

1.3電子游戲的分類

1.3.5冒險類游戲本課件是可編輯的正常PPT課件

1.3電子游戲的分類

1.3.6?射擊類游戲分類元素游戲類型游戲類型細分按畫面

2D

平臺類卷軸類3D全3D

按視角

第一人稱2.5DFPS第三人稱平視角、俯視角按主體對象

角色類射擊游戲以角色為射擊主體載具類射擊游戲駕駛射擊、飛行射擊本課件是可編輯的正常PPT課件

1.3電子游戲的分類

1.3.7?競速類游戲本課件是可編輯的正常PPT課件1.4游戲引擎

1.4.1游戲引擎的定義“引擎”(engine)這個詞匯最早出現在汽車領域,是汽車的動力來源,它好比汽車的心臟,決定著汽車的性能和穩(wěn)定性,汽車的速度、操縱感等這些直接與駕駛相關的指標都是建立在引擎的基礎上的。計算機游戲也是如此,玩家所體驗到的劇情、關卡、美工、音樂、操作等內容都是由游戲的引擎直接控制的。它扮演著中場發(fā)動機的角色,把游戲中的所有元素捆綁在一起,在后臺指揮它們同步有序地工作。本課件是可編輯的正常PPT課件1.4游戲引擎

1.4.2?游戲引擎的功能①光影效果。②動畫。③提供物理系統(tǒng)。④渲染。⑤負責玩家與計算機之間的溝通。本課件是可編輯的正常PPT課件1.4游戲引擎

1.4.3?游戲引擎的特點1.完整的游戲功能。2.強大的編輯器和第三方插件3.簡潔有效的SDK接口4.其他輔助支持本課件是可編輯的正常PPT課件1.4游戲引擎

1.4.4?世界主流游戲引擎介紹1.Unreal(虛幻)引擎本課件是可編輯的正常PPT課件1.4游戲引擎

1.4.4?世界主流游戲引擎介紹2.CryEngine引擎本課件是可編輯的正常PPT課件單擊此處添加副標題內容謝謝聆聽本課件是可編輯的正常PPT課件第2章

C#程序語言基礎

本課件是可編輯的正常PPT課件知識目標熟悉VisualStudio的使用熟悉C#的基礎知識以及基本語法學習面向對象的程序設計技術和方法掌握如何通過C#開發(fā)應用程序學習目標能力目標學會使用VisualStudio軟件創(chuàng)建C#項目掌握使用VisualStudio進行編寫C#程序使用C#語言編寫小程序(小游戲)完成“連連看”游戲的開發(fā)本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.1C#語言發(fā)展歷史及特點C#的由來:微軟公司在2000年發(fā)布的一種新的基于.NET平臺的面向對象的高級編程語言。C#特點:語法簡潔,不允許直接操作內存,去掉了指針操作。徹底的面向對象設計,封裝、繼承、多態(tài)。與Web緊密結合,C#支持絕大多數的Web標準,如HTML、XML、SOAP。安全機制很強大,.NET提供的垃圾回收器能夠幫助開發(fā)者有效的管理內存資源。兼容性,因為C#遵循.NET的公共語言規(guī)范(CLS),從而能夠保證與其它語言開發(fā)的組

件兼容。靈活的版本控制技術,因為C#語言本身內置了版本控制功能,因此是開發(fā)人員更容易的開發(fā)和維護完善的錯誤、異常處理機制。C#提供了完善的錯誤和異常處理機制,使程序更加健壯。本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.2編程語言與腳本語言編程語言(Programminglanguage)是用來定義計算機程序的形式語言。它是一種被標準化的交流技巧,用來向計算機發(fā)出指令。一種計算機語言讓程序員能夠準確地定義計算機所需要使用的數據,并精確地定義在不同情況下所應當采取的行動。腳本語言(ScriptingLanguage)又被稱為擴建的語言,或者動態(tài)語言,是一種編程語言,用來控制軟件應用程序,腳本通常以文本(如ASCII)保存,只在被調用時進行解釋或編譯。本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法1.C#基本數據類型?C#的數據類型分值類型(ValueType)和引用類型(ReferenceType)兩大類?值類型包括簡單類型(SimpleType)結構類型(StructType)枚舉類型(EnumType)?引用類型包括類類型(ClassType)接口類型(InterfaceType)委托類型(Delegate)數組類型(ArrayType)?值類型與引用類型的區(qū)別前者一般是存在棧中,后者則是有一個引用變量,一個對象內存(存入堆中)本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法2.C#運算符C#運算符包括:算術運算符、邏輯運算符、比較運算符、位運算符、條件運算符、賦值運算符算術運算符:進行算術運算的運算符,包括加法、減法、乘法、除法、取余等本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法邏輯運算符:進行邏輯運算的運算符,主要包括與、或、非等本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法比較運算符:在條件判斷中經常使用的一類運算符,包括大于、小于、不等于、大于等于、小于等于等,使用比較運算符運算得到的結果是布爾型的值,因此經常將使用比較運算符的表達式用到邏輯運算符的運算中。本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法位運算符:位運算通常是指將數值型的值從十進制轉換成二進制后的運算,由于是對二進制數進行運算。位運算包括與、或、非、左移、右移等。賦值運算符本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法條件運算符:又稱為三元運算符,在C#語言中條件運算符只有一個,具體的語法形式如下:布爾表達式?表達式1:表達式2其中:布爾表達式:判斷條件,它是一個結果為布爾型值的表達式。表達式1:如果布爾表達式的值為True,該條件運算符得到的結果就是表達式1的運算結果。表達式2:如果布爾表達式的值為False,該條件運算符得到的結果就是表達式2的運算結果。本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法賦值運算符:進行賦值操作的運算符本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法條件運算符:又稱為三元運算符,在C#語言中條件運算符只有一個,具體的語法形式如下:布爾表達式?表達式1:表達式2其中:布爾表達式:判斷條件,它是一個結果為布爾型值的表達式。表達式1:如果布爾表達式的值為True,該條件運算符得到的結果就是表達式1的運算結果。表達式2:如果布爾表達式的值為False,該條件運算符得到的結果就是表達式2的運算結果。本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法運算符的優(yōu)先級:多個運算符進行計算時,運算符的運算有先后順序本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法3.C#變量與常量的定義和使用變量:理解為存放數據的容器,并且在將值存放到變量中時還要為變量指定數據類型。定義變量的語法如下:數據類型變量名;例如:定義一個整形變量xintx;常量:在第一次被賦值后值就不能再改變。定義常量需要使用關鍵字const來完成。具體的定義常量的語法如下:const數據類型常量名=值;例如:constdoublePI=3.14;本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法4.C#變量命名規(guī)則C#常用的命名方法有兩種,一種是Pascal命名法(帕斯卡命名法),另一種是Camel命名法(駝峰命名法)。本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法5.C#

選擇結構(分支結構)選擇結構:根據判斷的結果來控制程序的流程,常見的分支有雙分支結構和多分支結構兩種雙分支結構一般有三種變現形式:①單個if語句,小括號表達式為true即執(zhí)行大括號里語句,如:if(布爾表達式)

{語句塊;}②單個if…else…語句,小括號表達式為true即執(zhí)行接下來的大括號里語句,否則即執(zhí)行else后面大括號語句,如:if(布爾表達式)

{語句塊1;}

else

{語句塊2;}③if…else…嵌套使用,在某個分支條件上再進行條件分支選擇,如:本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法5.C#

選擇結構(分支結構)if(布爾表達式1){語句塊1;}elseif(布爾表達式2){語句塊2;}...else{語句塊n;}本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法5.C#

選擇結構(分支結構)多分支型選擇結構:計算switch后括號表達式的值,根據其值選擇case后的值得語句執(zhí)行。switch(表達式){case值1:語句塊1;break;

case值2:語句塊2;break;...default:語句塊n;break;}本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法6.C#

循環(huán)結構循環(huán)結構是指在程序中需要反復執(zhí)行某個功能而設置的一種程序結構。它由循環(huán)體中的條件,判斷繼續(xù)執(zhí)行某個功能還是退出循環(huán)。for循環(huán):先執(zhí)行表達式1,然后執(zhí)行表達式2,如果表達式2的結果為True,則執(zhí)行表達式4,再執(zhí)行表達式3來改變循環(huán)變量,接著執(zhí)行表達式2看是否為True,如果為True,則執(zhí)行表達式4,直到表達式2的結果為False,循環(huán)結束。for(表達式1;表達式2;表達式3){表達式4;}本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法6.C#

循環(huán)結構while循環(huán):while語句執(zhí)行的過程是,當while中布爾表達式的結果為True時,執(zhí)行語句塊中的內容,否則不執(zhí)行。while(布爾表達式){語句塊;}本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法6.C#

循環(huán)結構dowhile循環(huán):先執(zhí)行do{}中語句塊的內容,再判斷while()中布爾表達式的值是否為True,如果為True,則繼續(xù)執(zhí)行語句塊中的內容,否則不執(zhí)行,因此dowhile語句中的語句塊至少會執(zhí)行一次。do{語句塊;}while(布爾表達式);本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.3C#的基本語法7.C#

goto語句goto語句用于直接在一個程序中轉到程序中的標簽指定的位置,標簽實際上由標識符加上冒號構成。語法形式如下:gotoLabell;語句塊1;Labell語句塊2;本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.4C#面向對象程序設計面向對象語言三大特點:封裝、繼承、多態(tài)1.封裝封裝:把一個或多個項目封閉在一個物理的或者邏輯的包中C#支持的訪問修飾符有:public:所有對象都可以訪問。private:對象本身在對象內部可以訪問。protected:只有該類對象及其子類對象可以訪問。internal:同一個程序集的對象可以訪問。protectedinternal:訪問限于當前程序集或派生自包含類的類型。本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.4C#面向對象程序設計2.繼承繼承:子類自動地從父類那里繼承所有的字段、方法、屬性、索引器等成員作為自己的成員。classA{publicinta;}classB:A{newpublicinta;}A為父類,B是A的子類,B繼承A的所有特性。接口:不同類之間的相同成員的集合,通過關鍵字interface定義本課件是可編輯的正常PPT課件2.1C#程序設計概述2.1.4C#面向對象程序設計3.多態(tài)多態(tài):同一操作作用于不同的對象,可以有不同的解釋,產生不同的執(zhí)行結果.

重載:父類與子類之間存在方法名相同,參數不同的方法。調用哪個方法取決于方法

的參數。

重寫:父類中的方法為抽象方法(virtual關鍵字聲明方法),子類使用(override關

鍵字)重新聲明該方法。本課件是可編輯的正常PPT課件2.1C#程序設計概述2.2使用C#進行程序開發(fā)2.2.1一個典型的游戲循環(huán)代碼框架用一個循環(huán)語句來維持游戲的持續(xù)運行狀態(tài):游戲初始化while(!游戲結束){…游戲邏輯…保持幀速率}游戲結束清理資源釋放內存空間流程圖:本課件是可編輯的正常PPT課件2.1C#程序設計概述2.2使用C#進行程序開發(fā)2.2.2簡單的Windows程序(見教材)2.2.3第一個“游戲”(見教材)本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.1游戲概述(1)概要:玩家可以將2個相同圖案的牌連接起來,連接線不多于3根直線,就可以成功將兩個牌消除。(2)操作:第一次使用鼠標單擊游戲界面中的牌,該牌此時為“被選中”,以特殊方式顯示;再次以鼠標單擊其他牌,若該牌與被選中的牌圖案相同,且把第一個牌到第二個牌連起來,中間的直線不超過3根,則消掉這一對牌,否則第一個牌恢復成未被選中狀態(tài),而第二個牌變成被選中狀態(tài)。(3)勝利條件:將游戲界面上的牌全部消除掉。(4)失敗條件:到規(guī)定時間,界面上的牌仍未全部消掉。本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.2游戲設計思路軟件分成兩個模塊:①整體界面的設計和圖片的隨機生成;②圖片路徑判斷函數;本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.3界面設計連連看游戲界面設計由兩部分組成:游戲區(qū)域和控制區(qū)域。游戲區(qū)域:包括游戲操作區(qū)域和計時區(qū)域,是游戲面向用戶的主要功能窗口??刂茀^(qū)域:控制方塊的種類數目,單個方塊的重復數。啟動游戲,重列方塊,以及計算游戲得分。本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.4圖片的隨機生成(具體見教材)圖片的隨機生成分兩步驟實現。①程序運行時即載入游戲需要的N張圖片,默認情況下圖片種類數是18,重復數是4(重復數必須是偶數),并且可以選擇是否重列。通過一個循環(huán),加載隨即的選擇N種圖片。②當確認游戲開始時,通過畫圖過程完成圖片生成。1.3.5事件處理(具體見教材)游戲共有兩個單擊按鈕:開始游戲(進入游戲狀態(tài))、重列(重新加載圖片)本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.6圖片的消除與得分(具體見教材)1.圖片的消除游戲連線思路:假設目標點p1、p2,如果有兩個折點分別為z1、z2,那么,所要進行的是:①如果驗證p1、p2直線連線,則連接成立。②搜索以p1、p2的x、y方向四條直線(可能某兩條直線會重合)上的有限點,每次取兩點作為z1、z2,驗證p1到z1/z1到z2/z2到p2是否都能直線相連,是則連接成立。2.計分規(guī)則本游戲的計分規(guī)則為:直連得10分,一個拐點得20,兩個拐點得40。用一個Label控件存儲得分。本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.7項目打包1.打開VS2019,選擇“擴展”→“管理擴展”命令,打開“管理擴展”對話框,搜索并下載MicrosoftVisualStudioInstallerProjects本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.7項目打包2.右擊“解決方案”按鈕,在彈出的快捷菜單中選擇“添加”→“新建項目”命令。本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.7項目打包2.打開“添加新項目”對話框,在搜索欄輸入setup,下方會列出搜索結果,選擇SetupProject選項本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.7項目打包2.打開“配置新項目”對話框,填寫項目名稱,選擇位置,單擊“創(chuàng)建”按鈕,如圖2-36所示,至此,項目創(chuàng)建成功。本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.7項目打包3.項目創(chuàng)建成功后,添加文件。右擊ApplicationFolder(應用程序文件夾),在彈出的快捷菜單中選擇Add→文件命令本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.7項目打包3.在打開的對話框中,找到需要打包的項目的Debug文件夾,選擇bin→Debug文件夾下的所有文件,將它們全部添加到ApplicationFolder(應用程序文件夾)中(注:項目不同文件多少不一致,需要全部添加)本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.7項目打包4.添加卸載程序(C:\Windows\System32)msiexec.exe右擊ApplicationFolder(應用程序文件夾),在彈出的快捷菜單中選擇Add→“文件”命令,在打開的新對話框中,將msiexec.exe文件添加到ApplicationFolder項目中本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.7項目打包4.添加卸載程序(C:\Windows\System32)msiexec.exe右擊msiexec.exe文件,在彈出的快捷菜單中選擇CreateShortcuttomsiexec.exe命令新建文件

Shortcuttomsiexec.exe本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.7項目打包單擊“連連看”,復制ProductCode屬性的值單擊Shortcuttomsiexec.exe,將復制的ProductCode屬性值粘貼在Arguments屬性中,然后在最前面加上/X(注:/X后有一個空格)最后將其拖動到

User’sProgramsMenu(用戶的程序菜單)中4.添加卸載程序(C:\Windows\System32)msiexec.exe本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.7項目打包5.添加運行時的環(huán)境右擊ApplicationFolder(應用程序文件夾),在彈出的快捷菜單中選擇Add→“項目輸出”命令本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.7項目打包5.添加運行時的環(huán)境在新打開的“添加項目輸出組”對話框中選擇項目、主輸出,單擊“確定”按鈕本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.7項目打包5.添加運行時的環(huán)境得到主輸出文件同時創(chuàng)建了一個主輸出文件的快捷方式,將其拖進用戶桌面本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.7項目打包5.添加運行時的環(huán)境右擊“連連看”程序,在彈出的快捷菜單中選擇“屬性”命令本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.7項目打包5.添加運行時的環(huán)境打開“系統(tǒng)必備”對話框,如圖2-52所示,選擇相應選項后單擊“確定”按鈕(此處選擇所使用的.NET的版本)本課件是可編輯的正常PPT課件2.1C#程序設計概述2.3休閑類小游戲:連連看2.3.7項目打包6.生成項目右擊

“連連看”程序,在彈出的快捷菜單中選擇

“生成”命令單擊

setup.exe文件即可安裝游戲并運行。

至此游戲創(chuàng)建成功本課件是可編輯的正常PPT課件單擊此處添加副標題內容謝謝聆聽本課件是可編輯的正常PPT課件2024第3章Unity3D游戲開發(fā)基礎——走進Unity的世界本課件是可編輯的正常PPT課件知識目標①熟悉Unity引擎概念②學會腳本程序開發(fā)③掌握腳本的基礎語法④學會材質的應用以及修改對象的屬性學習目標本課件是可編輯的正常PPT課件能力目標①學會在Unity3D中創(chuàng)建項目、場景、Plane和Sphere②掌握在Unity3D中創(chuàng)建腳本的方法③學會在Unity3D中移動和選擇對象等操作及了解控制相機跟隨的方法④學會在Unity3D中創(chuàng)建Cube對象并了解旋轉對象的方法⑤了解在Unity3D中UI中Text控件的使用方法⑥掌握在Unity3D中發(fā)布程序的方法以及運行發(fā)布后的程序學習目標本課件是可編輯的正常PPT課件目錄3.13.2Unity引擎概覽Unity腳本程序開發(fā)Unity腳本的基礎語法RollABall小游戲3.33.4第3章Unity3D游戲開發(fā)基礎本課件是可編輯的正常PPT課件3.1Unity引擎概覽本課件是可編輯的正常PPT課件Unity是一款功能強大的集成開發(fā)編輯器和引擎,為用戶提供了創(chuàng)建、開發(fā)和發(fā)布一款游戲所必需的工具,使用戶無論是開發(fā)3D游戲還是2D游戲都能夠得心應手。Unity的每個視圖都提供了不同的編輯和操作功能,以幫助用戶完成開發(fā)工作。本課件是可編輯的正常PPT課件1.菜單欄(1)File(文件)File(文件):打開和保存場景、項目,以及創(chuàng)建游戲。菜單列表中各項名稱及說明如表1-1所示。3.1.1熟悉界面本課件是可編輯的正常PPT課件3.1.1熟悉界面名稱說明NewScene創(chuàng)建新的場景。每一個新創(chuàng)建的游戲場景都包含了一個MainCamera(主攝像機)和一個DirectionLight(定向光源)。OpenScene打開一個已經創(chuàng)建的場景。單擊OpenScene后,會彈出一個LoadScene對話框,選擇所要打開的場景文件(擴展名為“.unity”的文件)即可。SaveScene保存當前場景。SaveAs當前場景另存為。BuildSetting發(fā)布設置,即在發(fā)布游戲前一些必要的設置。單擊BuildSettings后,會立刻彈出BuildSettings對話框,在Platform下可選擇當前項目發(fā)布后所要運行的平臺;同時可以單擊“PlayerSettings”按鈕,在屬性查看器中修改相關參數。表1-1File菜單列表中各項名稱及說明本課件是可編輯的正常PPT課件(2)Edit(編輯)Edit(編輯):包含普通的復制和粘貼功能,以及修改Unity部分屬性的設置。菜單列表中各項名稱及說明如表1-2所示。3.1.1熟悉界面本課件是可編輯的正常PPT課件3.1.1熟悉界面表1-2Edit【編輯】菜單列表中各項名稱及說明名稱說明FrameSelected居中并最大化顯示當前選中的物體,即若要在場景設計面板中近距離觀察所選中的游戲對象,便可單擊FrameSelected,從而方便地切換視角。ProjectSettings對工程進行相應的設置。Preferences偏好設置。對Unity3D的一些基本設置,如:選用外部的腳本編輯,皮膚,各種顏色的設置。以及一些用戶基本的快捷鍵的設置。本課件是可編輯的正常PPT課件(3)Assets(資源)Assets(資源):包含與資源創(chuàng)建、導入、導出及同步相關的所有功能。菜單列表中各項名稱及說明如表1-3所示。3.1.1熟悉界面本課件是可編輯的正常PPT課件3.1.1熟悉界面表1-3Assets(資源)菜單列表中各項名稱及說明名稱說明Create創(chuàng)建功能??梢杂脕韯?chuàng)建各種腳本,動畫,材質,字體,貼圖,物理材質,GUI皮膚等。ShowInExplorer打開資源所在的目錄位置。ImportNewAsset導入資源包。當創(chuàng)建項目工程的時候,有些資源包沒有導入進來,在開發(fā)過程中有需要使用,這時可以用到導入資源包的功能。ExportPackage為將需要的資源導出為資源包。本課件是可編輯的正常PPT課件(4)GameObject(游戲對象)GameObject(游戲對象):創(chuàng)建、顯示游戲對象,以及為它們創(chuàng)建父子關系。菜單列表中各項名稱及說明如表1-4所示。3.1.1熟悉界面本課件是可編輯的正常PPT課件3.1.1熟悉界面表1-4GameObject(游戲對象)菜單列表中各項名稱及說明名稱說明CreateEmpty創(chuàng)建一個空的游戲對象。可以對這個空的對象添加各種組件,即各種屬性。在Component里面會講到。3DObject創(chuàng)建3D游戲對象,包括Cube、Sphere、Capsule、Cylinder、Plane、Quad、Ragdoll、Terrain、Tree、WindZone和3DText。Light創(chuàng)建光源對象,包括DirectionalLight、PointLight、SpotLight、AreaLight、ReflectionProbe和LightProbeGroup。Audio創(chuàng)建與聲音有關的游戲組件,包括AudioSource和AudioReverbZone,AudioSource的功能為創(chuàng)建聲音源。UI創(chuàng)建和搭建與UI有關的游戲對象,包括Panel、Button、Text、Image、RawImage、Slider、Scrollbar、Toggle、InputField、Canvas和EventSystem等。本課件是可編輯的正常PPT課件(5)Component(組件)Component(組件):為游戲對象添加新的組件或屬性。菜單列表中各項名稱及說明如表1-5所示。3.1.1熟悉界面本課件是可編輯的正常PPT課件3.1.1熟悉界面表1-5Component(組件)菜單列表中各項名稱及說明名稱說明Mesh添加網格屬性。指模型的網格,Mesh的主要屬性內容包括頂點坐標,法線,紋理坐標,三角形繪制序列等其他有用屬性和功能。因此建網格,就是畫三角形;畫三角形就是定位三個點。Particles粒子系統(tǒng)。能夠造出很棒的流體效果。Physics物理系統(tǒng)??梢允刮矬w帶有對應的物理屬性。Audio音頻??梢詣?chuàng)建聲音源和聲音的聽者。Rendering渲染。Miscellaneous雜項。Scripts腳本。Unity內置的一些功能很強大的腳本。Camera-Control攝像機控制。本課件是可編輯的正常PPT課件(6)Window(窗口)Window(窗口):顯示特定視圖(如項目資源列表或游戲組成對象列表)。菜單列表中各項名稱及說明如表1-6所示。3.1.1熟悉界面本課件是可編輯的正常PPT課件3.1.1熟悉界面表1-6Window(窗口)菜單列表中各項名稱及說明名稱說明NextWindow下個窗口。Animation動畫窗口。用于創(chuàng)建時間動畫的面板。Profiler探查窗口。主要功能是對Unity集成開發(fā)環(huán)境中各個功能的使用情況和CPU的利用率進行檢查。Lighting打開光照設置面板。本課件是可編輯的正常PPT課件2.工具欄Unity的工具欄包括五個基本控制。(1)Transform變換工具:用來控制和操作場景以及游戲對象,主要應用于Scene場景視圖,每個工具的用法如表1-7所示。3.1.1熟悉界面本課件是可編輯的正常PPT課件3.1.1熟悉界面表1-7Transform變換工具工具名稱快捷鍵說明View(手掌)ToolQ平移Scene視圖。Move(移動)ToolW移動游戲對象。Rotate(旋轉)ToolE旋轉游戲對象。Scale(縮放)ToolR縮放游戲對象。Rect(矩形)ToolT編輯游戲對象的矩形手柄。本課件是可編輯的正常PPT課件(2)Gizmo坐標系工具:用來切換中心點的位置,用法如下:

:改變游戲對象的軸心點。Center:

改變游戲對象的軸心為物體包圍盒的中心。Pivot:

使用物體本身的軸心。

改變物體的坐標。Global:

世界坐標。Local:

自身坐標。3.1.1熟悉界面本課件是可編輯的正常PPT課件(3)播放工具:用來在編輯器運行或暫停游戲的測試,用法見表1-8。3.1.1熟悉界面工具名稱快捷鍵說明Play(播放)工具Ctrl+P運行游戲。Pause(暫停)工具Ctrl+Shift+P暫停游戲。Step(單幀)工具Ctrl+Alt+P一次執(zhí)行一步游戲。表1-8播放工具本課件是可編輯的正常PPT課件(4)Layers(分層)下拉列表:用來控制游戲對象在Scene視圖中的顯示和隱藏,各功能如表1-9所示。3.1.1熟悉界面表1-9Layers下拉列表信息分層名稱說明Everything顯示所有游戲的對象。Nothing不顯示任何游戲對象。Default顯示默認的游戲對象。TransparentFX顯示透明的游戲對象。IgnoreRaycast顯示不處理投射事件的游戲對象。Water顯示水對象。本課件是可編輯的正常PPT課件(5)Layout(布局)下拉列表:改變窗口和視圖的布局,并且可以保存所創(chuàng)建的任意自定義布局。3.1.1熟悉界面本課件是可編輯的正常PPT課件Project(項目視圖)包含整個工程中所有可用的資源,例如模型、腳本等。把它稱為一個文件夾也適合,因為畢竟它的確對應了一個文件夾,即每個Unity項目文件都會包含一個Assets文件夾,Assets文件夾是用來存放用戶所常見的對象和導入的資源,并且這些資源是以目錄的方式來組織的,Unity編輯器也只認這個文件夾,如圖3-2所示。3.1.2Project視圖圖3-2Project視圖本課件是可編輯的正常PPT課件Hierarchy(層級視圖)顯示當前場景中的每個GameObject(游戲對象),包含攝像機、燈光和模型等,以文字的方式顯示在列表中?!坝螒驅ο蟆笔荱nity中非常重要且基礎的概念,我們在游戲中進行的所有操作幾乎均是在不斷改變游戲對象。相當于Photoshop中的“層”的概念,即每個層可以包含一個自身可以顯示的對象,其下方還可以包含多個子對象,子對象還可以包含子對象,不斷嵌套。而這里的每個層,都是一個“游戲對象”,可在Hierarchy(層級視圖)中選擇對象并將一個對象拖到另一個對象內,以應用Parenting(父子化)。在場景中添加和刪除對象后,還將在Hierarchy(層級視圖)中顯示,如圖3-3所示。3.1.3Hierarchy視圖圖3-3Hierarchy視圖本課件是可編輯的正常PPT課件Inspector(檢視視圖)用于顯示當前所選游戲對象的相關屬性與信息,還用于顯示資源的屬性、內容以及渲染設置、項目設置等參數,千萬不要被Inspector這個單詞或者“檢視”這個詞所迷惑,它所代表的含義只是相當于屬性面板而已,即它是針對你當前選中的物件進行詳細的描述。當然有些時候,不僅僅是描述,它還可以編輯屬性。我們可以選中的物件不外乎兩大類:游戲對象(來自Hierarchy面板)和資源文件(來自Project面板),如果選中游戲對象,我們可以編輯此游戲對象的屬性,比如精確編輯其位置、旋轉、縮放等;如果選中資源文件,我們可以修改其導入設置,比如我們選擇一張圖片,可以設置其貼圖類型、壓縮格式等等,如圖3-4所示。3.1.4Inspector視圖圖3-4Inspector視圖本課件是可編輯的正常PPT課件Scene(場景視圖)是游戲場景設計視圖,是游戲畫面主要的編輯區(qū)域,所有的對象均在這里布置,設置它們的位置、大小、旋轉等等信息,組成一幕畫面,一個Scene只能組合出一幕畫面,那么多幕畫面則需要由多個場景構成,一個場景是游戲的一個顯示單位,如戰(zhàn)斗場景,歡迎場景,設置場景等。場景中的每個物體都有一個三維,unity的坐標系是左手坐標系,即x軸向右,y軸向上,z軸就向里,如圖3-5所示。3.1.5Scene視圖圖3-5Scene視圖本課件是可編輯的正常PPT課件①Shaded(遮蔽處)下拉框可以選擇場景的顯示方式,是以實體方式顯示,Wireframe(線框)是以線框方式顯示,還有一些其它的顯示方式,在引擎中試試就知道了。②2D按鈕是控制場景以2D方式顯示還是3D方式,默認沒選中表示是3D方式,選中后場景會以2D方式顯示,攝像機的視圖變成平行視圖。3.1.5Scene視圖本課件是可編輯的正常PPT課件③光線按鈕是控制場景光線是否啟用,如果啟用,則可以在場景中看到運用光線之后的效果,則顯示場景真實角度的光線,而不是游戲呈現出來的效果。此操作不會影響真實游戲的光線效果,只影響在場景界面中的顯示效果。④音頻按鈕是控制場景中是否播放音頻,此操作同樣不影響游戲實際運行效果,只控制場景中音頻是否播放。3.1.5Scene視圖本課件是可編輯的正常PPT課件⑤右邊這個圖片下拉框是控制其它物體在場景中是否顯示,同樣只針對場景,不影響游戲運行效果。Skybox是控制場景是否顯示天空盒,Fog是控制場景是否顯示霧效果,Flare(閃耀)是控制場景是否運用鏡頭光暈效果,Animatedmaterials指動畫材料,Imageeffects指圖片特效。⑥Gizmos(小玩意)按鈕是控制場景是否顯示一些物體,比如3Dicon控制場景是否以3D的方式來顯示音頻,攝像機這些圖標。showgrid是控制場景中的物體是否顯示網格。3.1.5Scene視圖本課件是可編輯的正常PPT課件Game(游戲視圖)是游戲運行時的顯示視圖,對Scene視圖的修改都會時時同步到Game視圖,如圖3-6所示。3.1.6Game視圖圖3-6Game視圖本課件是可編輯的正常PPT課件

Display下拉框是控制以幾個攝像機進行渲染,默認是一個,即默認攝像機。 第二個下拉框是控制渲染界面的分辨率,FreeAspect表示填滿界面。 下一個滑動條是控制渲染界面的縮放比例。

Stats(統(tǒng)計)控制是否顯示運行信息面板。

Gizmos控制是否顯示一些物體。3.1.6Game視圖本課件是可編輯的正常PPT課件控制臺和狀態(tài)欄是Unity集成開發(fā)環(huán)境中兩個很有用的調試工具。狀態(tài)欄總是出現在編輯器的底部(雖然在通常情況下它只是一條空白的灰線)??梢酝ㄟ^菜單Window→Console或按Ctrl+Shit+C快捷鍵打開控制臺,也可以單擊狀態(tài)欄來打開控制臺。按下“播放”按鈕開始測試游戲,并且看看控制臺和狀態(tài)欄是怎樣一起隨著Sphere高度的數據而進行更新的。開發(fā)人員還可以在腳本中讓游戲向控制臺和狀態(tài)欄輸出一些信息,這有助于調試和修復錯誤。游戲遇到的任何錯誤、消息或者警告,以及和這個特定錯誤相關的任何細節(jié),都會顯示在控制臺里。3.1.7控制臺和狀態(tài)欄本課件是可編輯的正常PPT課件3.2Unity腳本程序開發(fā)本課件是可編輯的正常PPT課件與其他常用的平臺有所不同,在Unity中,腳本程序要起作用,實現的主要途徑是將腳本附到特定的游戲對象中。這樣,腳本中不同方法在特定的情況下被調用,就能實現特定的功能。下面是最常用的幾個回調方法。3.2.1Unity腳本概述本課件是可編輯的正常PPT課件①Start方法。這個方法在游戲場景加載時調用,在該方法內可以寫一些游戲場景初始化之類的代碼。②Update方法。這個方法會在每一幀渲染之前調用,大部分游戲代碼在這里執(zhí)行,除了物理部分的代碼。③FixedUpdate方法。此方法會每隔固定的時間間隔系統(tǒng)調用,這里也是基本物理行為代碼執(zhí)行的地方。3.2.1Unity腳本概述本課件是可編輯的正常PPT課件除了以上幾種回調的方法以外,Unity還提供了一些其他的具有特定作用的回調方法。并且在有需要的情況下,還可以重寫一些處理特定事件的回調方法,這類方法一般以On前綴開頭,如OnCollisionEnter方法(此方法在系統(tǒng)檢測到碰撞開始時被回調)等。其實上述的方法與代碼在開發(fā)中一般都是位于MonoBehaviour類的子類中,也就是說開發(fā)腳本代碼時,主要是繼承MonnoBehaviour類并重寫其中特定的方法。3.2.1Unity腳本概述本課件是可編輯的正常PPT課件Unity中C#腳本的運行環(huán)境使用了Mono技術,Mono是一個由Xamarin公司主持的致力于發(fā)展.NET開源的工程。用戶可以在Unity腳本中使用.NET所有的相關類。但Unity中C#的使用和傳統(tǒng)的C#有一些不同,下面是初學者在學習Unity時C#腳本開發(fā)中需要特別注意的事項。3.2.2Unity中C#腳本的注意事項本課件是可編輯的正常PPT課件1.繼承自MonoBehaviour類

Unity中所有掛載到游戲對象上的腳本包含的類都繼承自MonoBehavior類(直接地或間接地)。MonoBehaviour類中定義了各種回調方法,例如Start、Update和FixedUpdate等。通過單擊Assets—>Create—>C#Script

創(chuàng)建的腳本,其系統(tǒng)模板已經包含必要的定義。publicclassBNUScript:MonoBehaviour{……}//繼承MonoBehaviour類3.2.2Unity中C#腳本的注意事項本課件是可編輯的正常PPT課件2.類名必須匹配文件名C#腳本中類名需要手動編寫,而且類名還必須和文件名相同,否則當腳本掛載到游戲對象上時,控制臺會報錯。3.使用Awake或Start方法初始化C#用于初始化腳本的代碼必須置于Awake或Start方法中。Awake和Start的不同之處在于,Awake方法是在加載場景時運行,Start方法是在第一次調用Update或FixedUpdate方法之前被調用,Awake方法在所有Start方法之前運行。3.2.2Unity中C#腳本的注意事項本課件是可編輯的正常PPT課件4.Unity腳本中協(xié)同程序有不同的語法規(guī)則Unity腳本中協(xié)同程序(Coroutines)必須是IEnumterator返回類型,并且yield用yieldreturn替代。具體可以使用如下的C#代碼片段來實現。

1usingUnityEngine;2usingSystem.Collections;//引入系統(tǒng)包3publicclassBNUCoroutines:MonoBehaviour{//聲明類

4IEnumerator

SomeCoroutines(){//C#協(xié)同程序

5yieldreturn0;//等待1幀

6yieldreturnnewWaitForSeconds(2);//等待2秒

7}}3.2.2Unity中C#腳本的注意事項本課件是可編輯的正常PPT課件5.只有滿足特定情況變量才能顯示在屬性查看器中只有序列化的成員變量能顯示在屬性查看器中。而private和protected類型的成員變量只能在專家模式中顯示,并且,它們的屬性不被序列化或顯示在屬性查看器,如果屬性想在屬性查看器中顯示,那么它必須是public類型的。提示:序列化是指將對象實例的狀態(tài)存儲到存儲媒體的過程。序列化的成員變量一般就是指public類型的成員變量,相反,static、private和protected等類型的變量就不符合此條件。3.2.2Unity中C#腳本的注意事項本課件是可編輯的正常PPT課件6.盡量避免使用構造函數不要在構造函數中初始化任何變量,而是使用Awake或Start方法來實現。即便是在編輯模式中,Unity仍會自動調用構造函數,因為Unity需要調用腳本的構造函數來取回腳本的默認值。何時調用構造函數無法預計,因為它或許會被預制件或未激活的游戲對象所調用。在單一模式下使用構造函數可能會導致嚴重后果,會引發(fā)類似隨機的空引用異常。因此,一般情況下盡量避免使用構造函數。事實上,沒必要在繼承自MonoBehaviour的類的構造函數中寫任何代碼。3.2.2Unity中C#腳本的注意事項本課件是可編輯的正常PPT課件3.3Unity腳本的基礎語法本課件是可編輯的正常PPT課件1.位移與旋轉

基礎知識游戲的開發(fā)中常常需要對游戲對象進行位移和旋轉等基礎操作。在Unity中,對游戲對象的操作都是通過腳本來修改游戲對象的Transform(變換對象)與Rigidbody(剛體屬性)參數來實現的。這些參數的修改是通過腳本編程來實現的。3.3.1常用操作本課件是可編輯的正常PPT課件

開發(fā)流程我們要知道的是,物體的旋轉是通過Transform.Rotate方法來實現的。本案例通過此方法實現了讓游戲對象繞x軸順時針每幀旋轉2°的效果,具體開發(fā)流程如下:①創(chuàng)建Cube對象。單擊GameObject→3DObject→Cube,創(chuàng)建一個Cube對象作為本案例游戲對象,可以在左側面板上單擊Cube查看其相關屬性。②編寫腳本。單擊Assets→Create→C#Script,創(chuàng)建一個C#腳本,并將其命名為BNUTransR.cs,然后編寫腳本。③掛載腳本。腳本開發(fā)完成后,將這個腳本掛載到游戲對象上,在項目運行時即可實現所需功能。3.3.1常用操作本課件是可編輯的正常PPT課件旋轉與位移的基礎語法如下:1usingUnityEngine;2usingSystem.Collections;//引入系統(tǒng)包3publicclassBNUTransR:MonoBehaviour{//聲明類4voidUpdate(){//重寫Update方法5this.transform.Rotate(2,0,0);//繞x軸每幀旋轉2°6}}說明:物體的旋轉實現起來相當簡單,需要注意的是在Update方法里通過改變游戲對象Transform屬性來實現物體的旋轉和位移都是按幀來計算的。3.3.1常用操作本課件是可編輯的正常PPT課件物體的位移是通過Transform.Translate方法來實現的,例如,實現游戲對象沿z軸正方向每幀移動1個單位的效果,具體代碼如下:1usingUnityEngine;2usingSystem.Collections;//引入系統(tǒng)包3publicclassBNUTransT:MonoBehaviour//聲明類4voidUpdate(){//重寫Update方法5this.transform.Translate(0,0,1);//游戲對象每幀沿z軸移動1個單位6}}說明:一般情況下,在Unity中,x軸為紅色的軸,表示左右;y軸為綠色的軸,表示上下;z軸為藍色的軸,表示前后。3.3.1常用操作本課件是可編輯的正常PPT課件2.記錄時間

基礎知識在Unity中記錄時間需要用到Time類。Time類中比較重要的變量為deltaTime(此變量為只讀變量),它指的是從最近一次調用Update或者FixedUpdate方法到現在的時間。如果想均勻地旋轉一個物體,在不考慮幀速率的情況下,可以乘以Time.deltaTime。3.3.1常用操作本課件是可編輯的正常PPT課件

開發(fā)流程本案例實現了讓游戲對象繞x軸順時針每幀旋轉10°的效果,具體開發(fā)流程如下:①創(chuàng)建Cube對象。單擊GameObject→3DObject→Cube,創(chuàng)建一個Cube對象作為本案例游戲對象,可以在左側面板上單擊Cube查看其相關屬性。②編寫腳本。單擊Assets→Create→C#Script,創(chuàng)建一個C#腳本,并將其命名為BNUTime.cs,然后編寫腳本。③掛載腳本。腳本開發(fā)完成后,將這個腳本掛載到游戲對象上,在項目運行時即可實現所需功能。3.3.1常用操作本課件是可編輯的正常PPT課件記錄時間的基礎語法如下:1usingUnityEngine;2usingSystem.Collections;//引入系統(tǒng)包3publicclassBNUTime:MonoBehaviour{//聲明類4voidUpdate(){//重寫Update方法5this.transform.Rotate(10*Time.deltaTime,0,0);//繞x軸均勻旋轉6}}說明:系統(tǒng)在繪制每一幀時,都會回調一次Update方法,因此,如果想在系統(tǒng)繪制每一幀時都做同樣的工作,可以把對應的代碼寫在Update方法中。3.3.1常用操作本課件是可編輯的正常PPT課件如果涉及剛體,可以將相關代碼寫在FixedUpdate方法里面。在FixedUpdate方法里面如果想每秒增加或減少一個值,需要乘以Time.fixedDelatTime,例如,想讓剛體沿y軸正方向每秒上升5個單位,具體開發(fā)流程如下:①創(chuàng)建Cube對象。單擊GameObject—>3DObject—>Cube,創(chuàng)建一個Cube對象作為本案例的游戲對象,可以單擊Cube查看其相關屬性,然后單擊AddComponent為其添加組件,并將UseGravity取消勾選。②編寫腳本。單擊Assets—>Create—>C#Script,創(chuàng)建一個C#腳本,并將其命名為“BNUFUpdate.cs”,然后編寫腳本。③掛載腳本。腳本開發(fā)完成后,將這個腳本掛載到攝像機上,然后在攝像機的屬性中會出現腳本,將GameObject一項設置為創(chuàng)建好的Cube對象,在項目運行時即可實現所需功能。3.3.1常用操作本課件是可編輯的正常PPT課件具體的語法如下:1usingUnityEngine;2usingSystem.Collections;//引入系統(tǒng)包3publicclassBNUFUpdtae:MonoBehaviour{//聲明類4publicGameObject

gameObject;//聲明游戲對象5voidFixedUpdate(){//重寫FixedUpdate方法6Vector3te=gameObject.GetComponent<Rigidbody>().transform.position;//獲取剛體的位置坐標7te.y+=5*Time.fixedDeltaTime;//剛體沿y軸每秒上升5個單位8gameObject.GetComponent<Rigidbody>().transform.position=te;//設置剛體的位置坐標9}}3.3.1常用操作本課件是可編輯的正常PPT課件具體的語法如下:7te.y+=5*Time.fixedDeltaTime;//剛體沿y軸每秒上升5個單位8gameObject.GetComponent<Rigidbody>().transform.position=te;//設置剛體的位置坐標9}}說明:本案例定義了一個向量來表示物體位移的方向。FixedUpdate方法是按固定的物理時間被系統(tǒng)回調執(zhí)行的,其中代碼的執(zhí)行和游戲的幀速錄無關。3.3.1常用操作本課件是可編輯的正常PPT課件

基礎知識在Unity中組件(Component)屬于游戲對象,例如,把一個Renderer(渲染器)組件附加到游戲對象上,可以使游戲對象顯示在游戲場景中。把Camera(攝像機)組件附加到游戲對象上可以使該對象具有攝像機的所有屬性。由于所有的腳本都是組件,因此一般腳本都可以附加到游戲對象上。常用的組件可以通過簡單的成員變量獲得。下面介紹一些常見的成員變量,如表3-1所示。3.3.2訪問游戲對象組件表3-1常見組件本課件是可編輯的正常PPT課件3.3.2訪問游戲對象組件組件名稱變量名稱組件名稱變量名稱TransformtransformRigidbodyrigidbodyRenderertendererCameraCamera(只在攝像機對象有效)LightLight(只在光源對象有效)AnimationanimationCollidercollider

表3-1常見組件本課件是可編輯的正常PPT課件

開發(fā)流程在Unity中,附加到游戲對象上的組件可以通過GetComponent方法獲得。本案例中的第5行和第6行代碼功能一樣的,都是使游戲對象沿x軸正方向移動,而第6行代碼通過獲取Transform組件來使游戲對象移動,具體的開發(fā)流程如下。①創(chuàng)建Cube對象。單擊GameObject→3DObject→Cube,創(chuàng)建一個Cube對象作為本案例游戲對象,可以在左側面板上單擊Cube查看其相關屬性。②編寫腳本。單擊Assets→Create→C#Script,創(chuàng)建一個C#腳本,并將其命名為BNUComponent.cs,然后編寫腳本。③掛載腳本。腳本開發(fā)完成后,將這個腳本掛載到游戲對象上,在項目運行時即可實現所需功能。3.3.2訪問游戲對象組件表3-1常見組件本課件是可編輯的正常PPT課件

訪問游戲對象組件的基礎語法如下:1usingUnityEngine;2usingSystem.Collections;//引入系統(tǒng)包3publicclassBNUComponent:MonoBehaviour{//聲明類4voidUpdate(){//重寫Update方法5transform.Translate(1,0,0);//沿x軸移動一個單位6GetComponent<Transform>().Translate(1,0,0);//沿x軸移動一個單位7}}3.3.2訪問游戲對象組件本課件是可編輯的正常PPT課件Unity中腳本不僅可以控制其所附加到的游戲對象,還可以訪問其他游戲對象和游戲組件,且方法很多。例如,可以通過屬性查看器指定參數來獲取游戲對象,也可以通過Find方法來獲取游戲對象。下面分別進行詳細介紹。3.3.3訪問其他游戲對象本課件是可編輯的正常PPT課件1.通過屬性查看器指定參數在腳本代碼中聲明public類型的游戲對象引用,屬性查看器中就會顯示這個游戲對象的參數,將想要獲取的游戲對象拖曳到屬性查看器的相關參數位置即可。下面通過一個案例具體說明。創(chuàng)建兩個Cube對象,分別命名為Cube1和Cube2,然后通過Cube1上的腳本來訪問Cube2上的腳本,具體開發(fā)流程如下。①創(chuàng)建Cube對象。單擊GameObject→3DObject→Cube,創(chuàng)建兩個Cube對象,并且將一個命名為“Cube1”,另一個命名為“Cube2”。②編寫腳本。單擊Assets→Create→C#Script,創(chuàng)建一個C#腳本,并將其命名為“BNUOthobj.cs”,然后編寫腳本,具體代碼如下。3.3.3訪問其他游戲對象本課件是可編輯的正常PPT課件1usingUnityEngine;2usingSystem.Collections;//引入系統(tǒng)包3publicclassBNUOthobj:MonoBehaviour{//聲明類4publicGameobject

otherObject;//引用游戲對象5voidUpdate(){//重寫Update方法6Testtest=other0bject.GetComponent<Test>()//獲取“Test”腳本組件7test.doSomething();//執(zhí)行doSomething方法8}}說明:本段代碼通過獲取指定游戲對象的腳本屬性、執(zhí)行腳本中方法的方式來對其他游戲對象進行訪問。3.3.3訪問其他游戲對象本課件是可編輯的正常PPT課件再創(chuàng)建一個C#腳本,并將其命名為“Test.cs”,然后編寫腳本,具體代碼如下。1usingUnityEngine;2usingSystem.Collections;//引入系統(tǒng)包3publicclassTest:Mon

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論