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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

第一阶段unity基础

發布時間:2024/9/30 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第一阶段unity基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一階段unity基礎

引言

注意:
1.重點:1.適用性(什么時候用,怎么用)<記腦子里>??2.作用(能夠解決什么問題)?3.定義??4.操作/語法
2.每天練習必須會獨立完成
3.形成筆記保存下來
4.課下抓緊練,不懂馬上問

2D游戲:視角完全鎖定,二維坐標
3D游戲:視角可以隨意變化,三維坐標
在移動平臺,Unity幾乎成為3D游戲開發的標準工具
Virtual?Reality
虛擬?????現實

Augmented?Reality
增強????????現實

游戲引擎:程序的框架,一款游戲最最核心的代碼。
*使用游戲引擎,開發者可以重用已有的核心技術,將精力集中在游戲邏輯和設計上,從而簡單快速的創建游戲。

包含以下系統:渲染引擎、物理引擎、碰撞檢測系統、音效、腳本引擎、動畫系統、人工智能、網絡引擎以及場景管理。

U3D特點:
1.簡單易用???2.開發效率高???3.價格便宜???4.新手居多????5.跨平臺(23個平臺間自由遷移,出色的部署,完全的覆蓋)
C#(C?sharp):微軟推出的編程語言

?

Unity引擎基礎

-Unity環境搭建?

-C#?語言基礎

-Unity?API

-3D數學基礎

-物理引擎1

-UGUI

Unity小技巧

如果編輯器意外崩潰了,但場景未保存,這時可以打開工程目錄,找到/Temp/_Backupscenes/文件夾,可以看到有后綴名為.Backup的文件,將該文件的后綴名改為.Unity拖拽到項目視圖,即可還原編輯器崩潰前的場景。

好不容易才調好的坐標,結果發現是在運行模式下,如果退出運行模式就還原了怎么辦?可以在檢視面板右鍵點擊組件名,在彈出界面中選擇copy?Component,然后退出運行模式后同樣右鍵點擊組件名,在彈出界面中選擇paste?Component?Values即可。

分別按鍵盤鍵q、w、e、r、t可以依次切換界面上的小工具,除此之外,按數字鍵2或3還可以切換場景為2d模式或3d模式

所有數值類型的字段,都支持在檢視面板中直接輸入簡單的數值表達式

右鍵點擊檢視面板下方的預覽窗口即可讓預覽窗口跳出來,然后自己選擇合適的地方???#xff0c;這樣切換模型查看就不會影響到其它面板。想讓預覽窗口回到原位,只需右鍵點擊窗口,在彈出菜單中選擇close?Tab即可。

在層次視圖的搜索框中輸入完整的腳本或組件名稱,即可找到所有綁定了該腳本或組件的對象?;蛘咴谒阉骺蛑休斎雝:加上某個類別如light,即可找到使用同類組件的對象。

可以借助編輯器自帶的標記功能為腳本分類,在檢視面板中點擊腳本圖標下方的小三角,即可為腳本設置顏色或選擇圖標。

第一章?:Unity環境搭建

所用軟件:Unity?5.4.0f3?(64-bit)

assets文件夾最重要

Scene場景面板

常用快捷鍵

1.按下鼠標滾輪拖動場景(或者拖動小手),滑動滾輪縮放場景

2.選擇十字標,選定物體,按下F:居中,ALT+鼠標左鍵:圍繞旋轉??ALT+鼠標右鍵:縮放=滑動滾輪

3.右鍵加ASDWQE?場景漫游?

4.按下十字標,選定物體,拖動軸:往前走=向著Z軸正方向,向右走=X軸正方向,向上走=Y軸正方向:反之負方向。拖動面:沿面移動。

5.按下雙曲箭頭標,是按軸旋轉。

6.按下方框和四個箭頭的標,是放大縮小,拖動中間白色小方框是整體按比例放大縮小。

inspector:檢視面板(檢查監視)?顯示的屬性可能不準,在右上角static上邊的小三杠選擇Debug可以查看隱藏屬性,在里面找到要修改的屬性的真正名稱

transform?變換組件????reset?重置

Position?:位置??X?0?Y?0?Z?0?????unity世界原點

Rotation?:角度?X?0?Y?0?Z?0?????角度同世界一致

Scale:?????比例?(一般?X?1???Y?1???Z?1)

unity世界物體都是由小三角組成,物體越細膩小三角越多。

頂點吸附:按下V同時按下左鍵拖動,實現頂點吸附

視覺停留效應:0.02S以內視覺感受不到更新

2D視角:ISO?正交模式?3D視角:Persp??透視模式

?

基礎概念

坐標

世界坐標:整個場景的固定坐標,不隨物體旋轉而改變

本地坐標:物體自身坐標,隨旋轉而改變

?

場景scene

一組相關聯的游戲對象的集合,通常游戲中每個關卡就是一個場景,用于展現當前關卡中的所有物體。

?

游戲對象?gameobject

-運行時出現在場景中的游戲物體。-是一種容器,可以掛載組件。

組件?component(例:transform版塊)

-是游戲對象的功能模塊

網格過濾器:過濾形狀??????網格渲染器:顯示形狀

Ctrl+S?保存場景

Ctrl+D?復制物體

為物體添加顏色等要為物體的MeshRenderer下的material添加材質,默認材質無法修改。

?

Ctrl+1??切換到scene視圖??Ctrl+2切換到Game視圖???Ctrl+3切換到Inspector視圖??Ctrl+4切換到Hierarchy視圖

?

在播放模式下,用戶對游戲場景做的所有修改都是臨時的,所有的修改在退出游戲預覽模式后都會被還原。

?

*重要)project(項目)包含很多scene(場景),scene包含很多gameobject(游戲對象),gameobject包含很多component(組件)<開發重點>

?

打組,一般先創建一個空物體(empty),然后再創建子物體。位置角度比例都是相對父的。

?

mesh??renderer??更改渲染????初始粉紫色,名為材質丟失

metallic?金屬的????albedo?反射系數

material?材質:物體的質地,指色彩、紋理、光滑度、透明度、反射率、折射率、發光度等。實際就是shader(著色)的實例。簡單來說是物體的外觀。

?

透明要把渲染模式rendering?medo改為transparent(透明),再調albedo(反射率)里的A

漸變要把渲染模式改為fade(漸變),再調albedo里的A

去底鏤空要把渲染模式改為cut?out(鏤空),再調albedo里的A?????

??????RGBA圖片可使用CUT?OUT去底,RGB不可以

?

shader著色器:專門用來渲染3D圖形的技術,可以使紋理以某種方式展現。??

?????材質相當于shader的面板,shader是程序

texture紋理:附加到物體表面的貼圖。

*重要)shader-->material-->MeshRenderer(網格渲染)?????meterial-->texture紋理

?????????????????????-->color

?

shader要借助material才能作用到物體

攝像機

天空盒skybox

圍繞整個場景的包裝器,用于模擬天空的材質。

?

windos-->lighting燈光-->environment?lighting環境燈光(scene會受到skybox的影響)

Tag標簽??layer層????作用:分類

攝像機可以選擇看見哪個層或者不看見哪個層,層也可以自己添加。

?

游戲是3D還是2D需要設置攝像機的視角為透視perspective或正交orthogonality

攝像機的far是視野范圍

viewport?rect??:?W,H調整屏幕寬和高???X,Y調整屏幕在水平豎直方向的位置。

若兩個攝像機視野重疊,則depth深度值,大的蓋住小的

?

選中攝像機,按Ctrl+Shift+F,可快速讓攝像機定位到當前位置,并且角度同視角一致。也可以定位別的物體。(要把輸入法關閉)

讓攝像機跟著模型走:創建一個空物體player,然后把模型model和攝像機作為player的子物體,并且務必把模型的transform重置,同player一致。

創建小地圖:在天空放置一個攝像機向下看,然后設置該攝像機深度值depth大于模型攝像機,然后設置成2D(orthogonality)

做人物標記:在人物頭頂創建一個平面,然后載入三角圖片。由于主攝像機不能看見三角平面標記,則給該平面設置一個層,給攝像機設置成不看見這個層。

把攝像機屬性skybox更改為depth?only?,則只顯示攝像機看得見的,其余部分會消失。

instantOC(面試重點)

:一個插件,包括occlusion?culling?和LOD

包括一、渲染管線,二、occlusion?culling,三、LOD

一、渲染管線?

????????渲染管線:圖形數據在GPU上經過運算處理,最后輸出到屏幕的過程。

????繪制調用Draw?Call:每次引擎(CPU)準備數據并通知GPU的過程。通俗講:每幀調用顯卡渲染物體的次數。(在starts里Batches后邊顯示的數字)

???CPU準備數據??????????? 頂點處理:中間有坐標系的轉換

游戲-->圖形API-->CPU(決定視錐以內哪些物體需要渲染à)與GPU(顯卡)分界線-->頂點處理-->圖元裝配(連接相鄰的點組成三角面)-->光柵化(計算三角面上的像素)-->像素處理(對每個像素區域進行著色)-->緩存(一個存儲像素數據的內存塊,最重要的是幀緩存(常在顯卡中)與深度緩存z-buffer(物體距離攝像機的距離)。)

一個物體不渲染,CPU與GPU性能都會提高。物體越多、物體精度越高,CPU與GPU性能越低。

二、occlusion?culling

???????即時遮擋剔除occlusion?culling:在物體被渲染前,將攝像機視角內看不見的物體進行剔除,從而減少了每幀渲染數據量,提高渲染性能。(筆試考)

????默認:攝像機視錐內物體都會被渲染,即使看不見也會被渲染。

插件samples:每幀攝像機發射的射線數目,數量多會導致CPU性能降低,通常在150-500之間。

FOV?:視場<-->攝像機中filed?of?view??????????View視野<-->攝像機中far???

hide?delay延遲隱藏:射線發射次數。建議50幀-100幀之間。??PreCull?Check,建議勾選。

遮擋剔除同時,要為物體設置一個盒子碰撞器(綠色物理邊界)。為物體加一個組件-->box?collider。

注意:不設置碰撞器射線射不到。

遮擋剔除優點:減少渲染量。??(功能上沒有損失)??缺點:CPU(射線)需要消耗額外性能。

場景里物體較多且分布較密集(被遮擋的物體多)時使用遮擋剔除。

?

三、LOD

????LOD(Level?of?Detail多細節層次):指根據物體模型的節點在顯示環境中所處的位置和重要度,決定物體渲染的資源分配,降低非重要物體的面數和細節度,從而獲得高效率的渲染運算。

????不會降低draw?call

優點:降低非重要物體的面數與精度,從而獲得高效率的渲染運算???

???缺點:CPU總需要判斷距離,變換模型

適用性:1.場景中需要存在高精度模型??2.距離需要變化

步驟:1.創建層

????2.創建空物體并將模型添加到其中,模型命名:Lod_0,Lod_1,Lod_2(精度由高到低)

????3.為父物體指定層與標簽

????4.父物體或子物體添加碰撞器組件

????5.攝像機附加腳本IOCcam

Lod1?distance:攝像機到物體距離小于當前距離時,使?用Lod_0模型。

Lod2?distance:攝像機到物體距離大于Lod1且小于當前?距離時,使用Lod_1模型,大于當前值使用Lod_2模型。

?

?

光照系統

????GI(Global?illumination),即全局光照。能夠計算直接光、間接光、環境光(ambient)以及反射光(reflection)的光照系統。通過GI算法可以使渲染出來的光更加真是豐富。

直接光照

????直接光照directional平行光和位置無關和角度有關。point點光源相當于一個燈泡,range:范圍。sport聚光燈:由一個點像一個椎體照射,相當于手電筒。

物體陰影在光源選項組件里。硬陰影性能比軟陰影好。陰影很消耗性能,所以需要陰影剔除。

????shadow?distance(陰影距離):如果等于40則等于距離攝像機40米以內渲染陰影,40米以外不渲染陰影。

選中個別物體,可以在組件中選擇關閉陰影

環境光照

??環境光照ambient?source所有物體都能感受到的光照。

作用于場景內所有物體的光照,通過Environment?Lighting?中Ambient?控制。

?Ambient?Source?環境光源

--Skybox?通過天空盒顏色設置環境光照

--Gradient?梯度顏色

Sky?天空顏色、Equator?地平線顏色、Ground?地面顏色

--Ambient?Color?純色

?Ambient?Intensity?環境光強度

?Ambient?GI??環境光GI模式

--Realtime實時更新,環境光源會改變選擇此項。

--Backed?烘焙,環境光源不會改變選擇此項。

反射光照

??反射光照resolution?source從天空盒中取色。

根據天空盒或立方體貼圖計算的作用于所有物體的反射效果,通過Environment?Lighting?中Reflection?控制。

?Reflection?Source?反射源

--Skybox?天空盒

Resolution?分辨率Compression?是否壓縮

--Custom?自定義

Cubemap立方體貼圖

?Reflection?Intensity?反射強度

?Reflection?Bounces?使用Reflection?Probe?后允許不同游?戲對象間來回反彈的次數。

間接光照

???間接光照物體表面在接受光照后反彈出來的光。(特別消耗性能)

通過Light?組件中Bounce?Intensity?反彈強度控制。

可以通過Scene?面板Irradiance?模式查看間接光照。

注意:只有標記Lightmaping?Static的物體才能產生間接光。

實時GI

一、Realtime?GI?實時GI:在運行期間任意修改光源,效果實時更新。(需要預計算)

?實時GI在手游里慎用,太消耗性能。

1.把場景里不動的物體標記為Static(靜態的)?

2.勾選precomputed(預計算)?Realtime?GI??

3.調整好物體點擊Build(取消勾選Auto)

烘焙GI

二、烘焙GIBaked?GI將光照效果做成圖片貼到物體上。

????當場景包含大量物體時,實時光照和陰影對游戲性能有很大影響。使用烘焙技術,可以將光線效果預渲染成貼圖再作用到物體上模擬光影,從而提高性能。???適用于在性能較低的設備上運行程序。

????需要把不動的物體設置為靜態,只烘焙不動的物體。

步驟:

1.?游戲對象設置為LightmapingStatic。
2.?設置Light組件Baking屬性。
3.?啟用Lighting?面板的Baked?GI。
4.?點擊Build按鈕。(在Lightling-->Scene中)(如果勾選Auto?編輯器會自動檢測場?景的改動修復光照效果)
Light?組件Baking?屬性:烘焙模式
--Realtime僅實時光照時起作用。
--Baked僅烘焙時起作用。
--Mixed?混合,烘焙與實時光照都起作用。
可以通過Scene?面板Baked?模式查看光照貼圖。

光源偵測

三、光源偵測

由于LightMapping只能作用于static?物體,所以導致運?動的物體與場景中的光線無法融合在一起,顯得非常不真?實。而Light?Probes?組件可以通過Probe?(偵測)收集光影信息,?然后對運動物體鄰近的幾個Probe?進行插值運算,最后將?光照作用到物體上。

probe不宜太少也不宜太多,太少有光變化的地方偵測不到,太多消耗性能。在光有明暗變化的地方必須要有probe探針。?

?

聲音

聲音分為2D、3D兩類

????3D聲音:有空間感,近大遠小。

????2D聲音:適合背景音樂。

·?在場景中產生聲音,主要依靠兩個重要組件:

Audio?Listener?音頻監聽器:接收場景中音頻源Audio?Source(音頻源)發出的聲音,通過計算機的揚聲器播放聲音。

Audio?Source?音頻源

音頻監聽器在攝像機組件中,場景中只能有一個音頻監聽器。如果有多個攝像機,那只能留一個,要把別的攝像機的音頻監聽器組件移除remove。

?

一般游戲里聲音都放在一個sounds文件夾里面。

聲音組件中要勾選play?on?awake?(運行時播放)啟用聲音

3D?sound?settings??3D聲音的設置

音量衰減?linear線性曲線(常用)????X軸:單位?米。Y軸:音量

min?distance?:最小距離(距離之內無衰減)??max?distance:最大距離(超過距離就沒有聲音)

總結

以上是生活随笔為你收集整理的第一阶段unity基础的全部內容,希望文章能夠幫你解決所遇到的問題。

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