




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2024/2/281第三講:Unity引擎入門篇2游戲開發(fā)技術(shù)2024/2/282Games二、腳本語言簡(jiǎn)介三、腳本開發(fā)基礎(chǔ)本講提綱一、創(chuàng)建基本游戲場(chǎng)景四、討論2024/2/283一、創(chuàng)建基本游戲場(chǎng)景2024/2/2841.1攝像機(jī)游戲場(chǎng)景中至少有一臺(tái)攝像機(jī),也可以有多臺(tái)攝像機(jī)。多臺(tái)攝像機(jī)可以創(chuàng)建雙人分屏效果或高級(jí)的自定義效果。Unity中支持兩種類型的攝像機(jī)(Projection):Perspective透視攝像機(jī)Orthographic正交攝像機(jī)2024/2/285攝像機(jī)類型Perspective透視攝像機(jī)四棱臺(tái):近大遠(yuǎn)小適合3D游戲2024/2/286攝像機(jī)類型Orthographic正交攝像機(jī)長(zhǎng)方體:大小一樣適合2D游戲2024/2/287攝像機(jī)設(shè)置剔除掩碼cullingmaskLayers設(shè)置2024/2/288攝像機(jī)設(shè)置畫中畫2024/2/289攝像機(jī)設(shè)置多相機(jī)切換按數(shù)字鍵1,2,3即可進(jìn)行攝像機(jī)的切換。通過【腳本控制】2024/2/28101.2光源Unity提供了4種類型的光源,在合理設(shè)置的基礎(chǔ)上可以模擬自然界中任何的光源。1、Directionallight:方向光源該類型光源可以被放置在無窮遠(yuǎn)出,可以影響場(chǎng)景的一切游戲?qū)ο?類似于自然界中的日光的照明效果。方向光源是最不耗費(fèi)圖形處理器資源的光源類型。2024/2/28111.2光源2、Pointlight:點(diǎn)光源點(diǎn)光源可從一個(gè)位置向四面八方發(fā)出光線,影響其范圍內(nèi)的所有對(duì)象;類似于燈泡的照明效果;點(diǎn)光源的陰影是較耗費(fèi)圖形處理器資源的光源類型。3、Spotlight聚光燈燈光從一點(diǎn)發(fā)出,在一個(gè)方向按照一個(gè)錐形的范圍照射,處于錐形區(qū)域內(nèi)的對(duì)象受到光線照射;類似射燈的照明效果。2024/2/28121.2光源4、Arealight:區(qū)域光/面光源該類似光源無法應(yīng)用于實(shí)時(shí)光照,僅適用于光照貼圖烘焙。2024/2/28131.3創(chuàng)建角色角色控制資源包Assets->ImportPackage->CharacterController2024/2/2814角色預(yù)設(shè)體第一人稱第三人稱2024/2/28151.4天空盒天空盒資源包Assets->ImportPackage->Skyboxes資源包中包含9個(gè)天空盒2024/2/2816創(chuàng)建天空盒1)首先,準(zhǔn)備6張紋理(前、后、左、右、上、下等6個(gè)面);2)然后,創(chuàng)建一個(gè)材質(zhì)資源:Assets->Create->Material3)選中該材質(zhì),在Inspector視圖中,單擊Shader->RenderFX->Skybox4)對(duì)天空盒材質(zhì)賦予6張紋理2024/2/2817設(shè)置天空盒在Unity中,天空盒的使用方法有兩種:1、渲染設(shè)置edit->RenderSettings2、為攝像機(jī)對(duì)象添加天空盒組件Component->Rendering->Skybox2024/2/28181.5霧效在unity中,開啟霧效的方法非常簡(jiǎn)單:Edit->RenderSettings項(xiàng)2024/2/2819二、腳本語言簡(jiǎn)介2024/2/28202.1腳本介紹游戲吸引人的地方在于它的可交互性。在Unity中,游戲交互通過腳本編程來實(shí)現(xiàn)。那什么是腳本呢?腳本可以理解為附加在GameObject(游戲?qū)ο螅┥系挠糜诙x游戲?qū)ο笮袨榈闹噶畲a。通過腳本,開發(fā)者可以控制每一個(gè)游戲?qū)ο蟮膭?chuàng)建、銷毀以及對(duì)象在各種情況下的行為,進(jìn)而實(shí)現(xiàn)預(yù)期的交互效果。2024/2/28212.2Unity腳本語言Unity支持3種腳本語言:JavaSriptC#BooUnity的3種腳本語言實(shí)際上在功能和運(yùn)行速度上都是一樣的,區(qū)別主要體現(xiàn)在語言特性上。2024/2/28222.2Unity腳本語言三種腳本開發(fā)語言的對(duì)比JavaScript相對(duì)來說語法較為簡(jiǎn)單,比較容易入門,Unity官方示例中的腳本基本都是用JavaScript寫的。C#對(duì)于有C/C++基礎(chǔ)的讀者來說很容易學(xué)習(xí),C#本身有很多強(qiáng)大的語言特性,比JavaScript更適合進(jìn)行深入開發(fā)。大多數(shù)的Unity第三方插件都是用C#寫的,商業(yè)游戲項(xiàng)目基本上都是使用C#進(jìn)行開發(fā)。2024/2/28232.3JavaScript基本語法Unity使用的JavaScript和網(wǎng)頁開發(fā)中常用的JavaScript一樣嗎?不一樣它經(jīng)過編譯后運(yùn)行速度很快語法方面也有不少區(qū)別。也有人將其成為UnityScript。2024/2/2824變量JavaScript里變量需要先定義后才能使用。聲明一個(gè)變量的方法為:var變量名:變量類型例如:2024/2/2825變量變量前面可以添加訪問修飾符,如:public、protected、private來修飾。Public的變量可以在Inspector視圖中查看和編輯,不添加訪問修飾符則默認(rèn)為public.2024/2/2826變量JavaScript常用的變量類型:2024/2/2827數(shù)組JavaScript里可以使用兩種數(shù)組:內(nèi)建數(shù)組速度最快;可以在Inspector視圖里編輯;不能動(dòng)態(tài)調(diào)整大小Array數(shù)組Array數(shù)組可以調(diào)整大??;提供了常用的合并、排序等功能;不能在Inspector視圖里編輯;速度較內(nèi)建素組慢;2024/2/2828數(shù)組內(nèi)建數(shù)組2024/2/2829數(shù)組Array數(shù)組2024/2/2830數(shù)組內(nèi)建數(shù)組和Array數(shù)組可以很方便的轉(zhuǎn)換:2024/2/2831運(yùn)算、比較、邏輯操作符運(yùn)算操作符2024/2/2832運(yùn)算、比較、邏輯操作符比較操作符2024/2/2833運(yùn)算、比較、邏輯操作符條件操作符2024/2/2834語句JavaScript的所有語句均要以分號(hào)(;)結(jié)尾。語句的注釋支持單行注釋//支持多行注釋/**/。1、條件語句支持if、if-else條件判斷以及if-else嵌套使用。
2024/2/2835語句2、循環(huán)語句支持while、do-while、for、for-in的循環(huán)操作。
2024/2/2836語句3、switch語句Switch語句用來進(jìn)行多條件判斷,可以替代冗長(zhǎng)的if-else嵌套語句
2024/2/2837函數(shù)JavaScript里的函數(shù)格式為:
function函數(shù)名(參數(shù)1:參數(shù)類型,參數(shù)2:參數(shù)類型…):返回值類型{}2024/2/2838函數(shù)JavaScript中函數(shù)均可以視為Function類型的對(duì)象,可以像變量一樣進(jìn)行賦值比較等操作。2024/2/2839JavaScript腳本對(duì)于JavaScript腳本,Unity會(huì)自動(dòng)地為腳本添加一個(gè)與腳本文件名同名的類,并自動(dòng)地繼承于MonoBehaviour。如果使用C#語言來開發(fā),則需要在腳本里顯式地寫出類名和繼承關(guān)系。2024/2/28402.4C#基本語法函數(shù)C#變量聲明方式為:
變量類型變量名;例如:2024/2/2841函數(shù)變量前面可以添加訪問修飾符public、protected、private其中public的變量可以在Inspector視圖中查看和編輯,不添加訪問修飾符則默認(rèn)為private(在JavaScript中默認(rèn)為public)。2024/2/2842數(shù)組在C#中只能使用內(nèi)建數(shù)組2024/2/2843數(shù)組雖然不能使用Array數(shù)組,但是可以使用ArrayList、List等容器來達(dá)到同樣的目的。2024/2/2844函數(shù)C#里的函數(shù)格式為:例如:2024/2/2845函數(shù)函數(shù)參數(shù)前可以使用關(guān)鍵字out實(shí)現(xiàn)返回多個(gè)數(shù)值。例如:2024/2/2846三、腳本開發(fā)基礎(chǔ)2024/2/28473.1創(chuàng)建腳本Assets->Create->JavaScript(C#Script)2024/2/28483.1創(chuàng)建腳本2024/2/28493.1創(chuàng)建腳本C#ScriptJavaScript2024/2/28503.2腳本必然事件必然事件在Unity的腳本中,可以定義一些特定的函數(shù),這些函數(shù)會(huì)在滿足某些條件時(shí)由Unity自動(dòng)調(diào)用,它們被稱為必須事件。2024/2/28513.3MonoBehaviour類MonoBehaviour是Unity中一個(gè)非常重要的類,它定義了基本的腳本行為,所有的腳本類均需要從它直接或者間接地繼承。腳本必然事件就是從MonoBehaviour繼承而來。除了必然事件,MonoBehaviour定義了對(duì)各種特定事件(例如鼠標(biāo)在模型上單擊,模型碰撞等)的響應(yīng)函數(shù),這些函數(shù)名稱均以O(shè)n作為開頭。2024/2/28523.3MonoBehaviour類2024/2/28533.4訪問組件一個(gè)GameObject游戲組件可能由若干組件構(gòu)成。例如,在場(chǎng)景中新建一個(gè)立方體后,在Inspector視圖中可以看到一個(gè)簡(jiǎn)單的立方體包含了4個(gè)組件:Transform用于定義對(duì)象在場(chǎng)景中的位置、角度、縮放參數(shù)MeshFilter用來從資源文件中讀取模型BoxCollider用來為立方體添加碰撞效果MeshRender用來在場(chǎng)景中渲染立方體模型2024/2/28543.4訪問組件如何訪問游戲?qū)ο蟮母鞣N組件并設(shè)置組件參數(shù)?對(duì)于系統(tǒng)內(nèi)置的常用組件,Unity提供了非常便利的訪問方式,只需要在腳本里直接訪問組件對(duì)應(yīng)的成員變量即可,這些成員變量定義在MonoBehaviour中并被腳本繼承了下來。2024/2/28553.4訪問組件常用的組件及其對(duì)應(yīng)的變量注意:如果游戲?qū)ο笊喜淮嬖谀辰M件,則該組件對(duì)應(yīng)變量的值將為空值null2024/2/28563.5訪問游戲?qū)ο笤赨nity中,用戶可以通過如下幾種方式來訪問游戲?qū)ο蟆?、通過名稱來查找使用函數(shù)GameObject.Find如果場(chǎng)景中存在指定名稱的游戲?qū)ο?,那么返回該?duì)象的引用,否則返回null。如果存在多個(gè)重名的對(duì)象,那么返回第一個(gè)對(duì)象的引用。2024/2/28573.5訪問游戲?qū)ο?、通過標(biāo)簽來查找使用函數(shù)GameObject.FindWithTag如果場(chǎng)景中存在指定標(biāo)簽的游戲?qū)ο?,那么返回該?duì)象的引用,否則返回null。如果存在多個(gè)游戲?qū)ο笫褂猛粯?biāo)簽,那么返回第一個(gè)對(duì)象的引用。GameObject.Find和.FindWithTag是比較耗時(shí)的函數(shù)調(diào)用,因此不建議在Update函數(shù)中調(diào)用它們,而是應(yīng)該在初始化中查找一次以后保持到變量中。2024/2/28583.5訪問游戲?qū)ο?、通過訪問權(quán)限為public的變量,然后將要訪問的組件或者對(duì)象賦值給該變量,就可以在腳本中通過變量來訪問組件或?qū)ο罅恕?024/2/28593.6常用腳本APITransform組件Transform組件決定了游戲?qū)ο蟮奈恢?、方向和縮放比例。在游戲中如果想更新玩家位置,設(shè)置相機(jī)觀察角度都免不了要和Transform組件打交道。2024/2/2860Transform組件Transform組件的成員變量2024/2/2861Transform組件Transform組件的成員函數(shù)2024/2/2862Transform組件應(yīng)用示例1)向前方移動(dòng)
2)繞自身坐標(biāo)軸Y旋轉(zhuǎn)2024/2/2863Transform組件應(yīng)用示例3)繞世界坐標(biāo)的Y軸旋轉(zhuǎn)
4)使相機(jī)觀察方向跟隨物體移動(dòng)2024/2/2864Time類在Unity中可以通過Time類用來獲取和時(shí)間有關(guān)的信息(可以用來計(jì)算幀
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)陶瓷纖維市場(chǎng)競(jìng)爭(zhēng)格局與前景發(fā)展策略分析報(bào)告
- 2025-2030年中國(guó)造紙機(jī)械市場(chǎng)運(yùn)行態(tài)勢(shì)及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國(guó)蠔肉行業(yè)發(fā)展?fàn)顩r及營(yíng)銷戰(zhàn)略研究報(bào)告
- 2025-2030年中國(guó)礦渣粉產(chǎn)業(yè)十三五規(guī)劃及發(fā)展策略分析報(bào)告
- 2025-2030年中國(guó)電子銅箔市場(chǎng)運(yùn)行狀況及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 江西洪州職業(yè)學(xué)院《經(jīng)濟(jì)學(xué)的思維方式》2023-2024學(xué)年第二學(xué)期期末試卷
- 沈陽職業(yè)技術(shù)學(xué)院《受眾與視聽率分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 益陽職業(yè)技術(shù)學(xué)院《公共關(guān)系》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025屆上海市松江區(qū)屆高三上學(xué)期一??荚嚉v史試卷
- 遼寧中醫(yī)藥大學(xué)杏林學(xué)院《軟件測(cè)試技術(shù)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 員工賠償金保密協(xié)議書(2篇)
- GB/T 44828-2024葡萄糖氧化酶活性檢測(cè)方法
- GB/T 44865-2024物聯(lián)網(wǎng)基于物聯(lián)網(wǎng)和傳感網(wǎng)技術(shù)的動(dòng)產(chǎn)監(jiān)管集成平臺(tái)系統(tǒng)要求
- 燃?xì)夤究?jī)效考核管理制度
- 高中生物課程標(biāo)準(zhǔn)(人教版)
- 第三章-自然語言的處理(共152張課件)
- 2023版初中語文新課程標(biāo)準(zhǔn)
- 人音版音樂一年級(jí)上冊(cè)第3課《國(guó)旗國(guó)旗真美麗》說課稿
- GB/T 44255-2024土方機(jī)械純電動(dòng)液壓挖掘機(jī)能量消耗量試驗(yàn)方法
- DL∕T 1785-2017 電力設(shè)備X射線數(shù)字成像檢測(cè)技術(shù)導(dǎo)則
- 山東財(cái)經(jīng)大學(xué)《大學(xué)英語》2022-2023學(xué)年期末試卷
評(píng)論
0/150
提交評(píng)論