Unity3D基礎知識梳理


這段時間在做Unity的項目,這差不多是我的第一次實戰啊~然后公司來了實習的童鞋要學Unity,但是我一向不靠譜啊,所以只能幫他們稍微梳理下基礎的東西了啊,唉~學長只能幫你們到這里了~順便就把自己這兩天整理的一些基礎知識分享上來了,閑話不多說~
美術部分:
       Unity的話主要還是分兩塊吧,第一塊是美術(自己都不懂~這里允許我稍微帶過一下吧~),美術的話主要包括3d模型、材質、紋理(貼圖)這幾部分吧,當然你也可以說還有shader(着色器),Unity本身擁有幾十種shader,也可以根據自己的需要使用shaderLab語言來編寫shader,這個對我來說相當有難度,所以一般只用Unity自帶的和網上“流傳”的。



接下來是程序方面的:

基本組成:

       Scene場景,類似於Flash中的stage,用於放置各種對象。

       GameObject,可以攜帶各種Component(每個GameObject至少帶有Transform組件,所有的組件都可以從頂部菜單Component里面找到並添加給游戲對象)。

       Component組件,附加在GameObject上,不同的組件可以使GameObject具有不同的屬性,Transform、碰撞器、剛體、渲染器等都是組件,腳本也是組件的一種,對象所表現出來的行為都是由組件實現的。


腳本語言:

       C#、Javascript、boo(前兩者使用較為廣泛,網上教程以前兩者為主,個人推薦c#),一般的繼承MonoBehaviour類的腳本都需要依附的場景中的對象上才能被執行。

 


用戶圖形界面部分(GUI):

 

  • 用於制作按鈕、文本顯示、滾動條、下拉框等常用圖形操作界面元素,使用GUISkin和GUIStyle可以自定義樣式)
  • 系統自帶GUI
  • 各類GUI插件,NGUI、EZGUI等。

 

 


預制:

 

  • 用於程序運行時,動態實例化對象的“母體”,比如,在射擊類游戲中,子彈的生成就可以使用實例化預制的方式來實現,這就好比是Flash中的各種Display類,你可以定義它的各種屬性方法,然后在使用的時候直接實例化一個實例。
  • 在project面板右擊選擇Creat——Prefab新建一個預制,將Hierarchy面板中要制成預制的對象拖到這個新建預制上即可。


標簽和層:

 

  • 標簽(tag)用於辨別物體,與name類似,使用對象的tag和name都可以找到對應的物體(GameObject.Find(“Name”)、 GameObject.FindWitnTag(“Tag”))。默認是Untagged,可以通過Inspector面板里面Tag的下拉菜單選擇Add Tag項來添加新的標簽, <ignore_js_op> ZLDK3{M733PWP~4@RZY0AAB.jpg 在tagmanager中點開Tags左側的小三角 <ignore_js_op> XTT6WPQU}ZGWQ03Z9PLX)GQ.jpg 通過size來增加標簽的數量,每個Element內都填入新標簽的名字
  • 層(layer),在使用某些功能的時候,可以通過層來過濾不需要運用該功能的對象,也就是把該功能運用到特定的層,比如,相機的Culling Mask屬性,通過選擇特定層可以實現只顯示位於被選中的層的對象。層的添加也是在標簽管理器中,Unity已經設置了8個層,你是不能對這8個層進行修改的,你可以從第9個(也就是user layer8)開始添加你定義的層。

<ignore_js_op> FSQY5L}E~KJ~RBCP



資源:

 

  • .unitypackage格式的文件可以直接import到unity中,記住最好是在打開unity的情況下,在project面板里右擊,然后在import packages中選中你要導入的資源。注:Unity不識別中文路徑,因此要導入的資源千萬不要放在中文目錄下!!!還有你的工程也不要新建在中文目錄下!!!(你新建工程的時候選擇中文路徑的話,也建不起來~)
  • 也可以把你的場景打包,導出.unitypackage資源包,然后可以在其他項目中導入使用。(在project面板里右擊, export package)
  • 另外,利用工程面板(project)右鍵菜單中的import new assets可以導入其他形式的資源,如,模型、音頻、視頻等,當然也可以直接將外部文件夾中的資源拖到project中的方式完成導入。

 


物理引擎:

unity使用NVIDIA PhysX物理引擎

 

  • 碰撞器:各種基本體的碰撞器(box、sphere、capsule、cylinder),網格碰撞器(mesh collider)、車輪碰撞器(Wheel collider)、地形碰撞器(terrain collider)——碰撞器組件在你選中對象的時候會以綠色線框顯示。
  • 碰撞檢測:碰撞器碰撞檢測、光線投射(射線)、觸發器碰撞檢測,通過碰撞檢測可以得到與當前對象發生碰撞的對象信息,使用碰撞的相關函數OnCollisionEnter(碰撞器碰撞檢測)、OnTriggerEnter(觸發器碰撞檢測)、Physics.Raycast(光線投射)獲取。
  • 剛體:模擬物體物理現象的基礎,加了剛體組件才能模擬重力、阻力等。
  • 力:作用於剛體,你只要通過添加各種力,就可以使剛體表現出跟現實中一樣的受力情況。


粒子系統:

兩種形式,一種以物體攜帶粒子系統組件的形式實現,另一種是直接使用粒子系統GameObject(3.5以后)

<ignore_js_op> X8W6XCG)])7R24E99$E6`RA.jpg

  • 粒子系統GameObject:GameObject——Creat other——Particle system
  • 粒子系統組件:粒子發射器(ParticleEmitter,有Ellipsoid Particle Emitter和Mesh Particle Emitter兩種類型的粒子發射器,主要有粒子產生、數量、速度、大小、存活時間等參數設置)、粒子動畫器(Particle Animator,主要負責粒子產生后直至粒子消亡的行為變化的控制,包括運動過程中的旋轉、受力等)、粒子渲染器(Particle Renderer,主要是負責給予粒子的渲染,陰影、材質等設定)

 

<ignore_js_op> %7YR[~H`LNYJW}50KTYF@SE.jpg

 

抽空可以用粒子組件調一個火焰效果,把所設置的參數值分享給大家~

粒子系統組件參數淺析+火焰粒子demohttp://bbs.9ria.com/forum.php?mo ... 1&extra=#pid1577455


相機(camera):

 

  • 相機視角:透視(可以調整透視角度)、正交(沒有透視效果)
  • Skybox:只在Game窗口可見,需要skybox類型的shader,以及附在其上的六面貼圖紋理。
  • 第一人稱視角:角色不出現在視野中,相機看到的就像角色雙眼看到的一樣,如,常見的FPS射擊類游戲。第三人稱視角:能在視野中看到角色,相機一直跟隨者角色運動。(可以導入Unity自帶的CharacterControllers資源包,里面有第一人稱和第三人稱的原型)




光照系統:

創建燈光GameObject——creat other

 

  • 常用燈光類型:平行光(Directional light,無衰減,模擬太陽光)、聚光燈(spotlight,從一點向某一方向發射錐形光束,有衰減,聚光效果)、點光源(Pointlight,從一點向外輻射,有衰減)
  • 烘焙:將靜態光影效果渲染到紋理上,減少燈光和陰影帶來的開銷(free版的Unity不支持陰影,因此烘焙是free版實現陰影的方式)。
  • 陰影:只有pro版才支持,分為hard shadows和soft shadows兩種,前一種陰影比較重,后一種相對柔和。但是默認情況下,你會發現只要directional light類型的燈光才可以使用陰影,別急,咱們來改一個設置,讓其他兩種燈光也能使用陰影,打開edit-project settings-player,然后將rendering path改為deferredlighting(延遲光照),這下你的電光源和聚光燈也能產生陰影了~(要產生陰影,還需要將投射陰影的對象的Cast shadows(投射陰影)勾選,將接受陰影的對象的Receive shadows(接受陰影)勾選, <ignore_js_op> BFQJU[8JN{DLRGY83DULG.jpg 舉個例子,你要讓樹在地面上產生陰影,那就得讓樹投射陰影,然后讓地面接受陰影才行)。


地形系統:

選擇頂部菜單Terrain——creat terrain創建一個地形。

地形有一組地形工具用來繪制地形的高度、生成各種地貌,並且可以對地表運用紋理,還可以添加樹、草等地表植被。當然在使用紋理繪制地形以及添加地表植被之前需要導入相關的紋理資源和植被資源,另外還可以導入unity自帶的水的資源包,使用它里面的水面來模擬地形中的湖泊、河流等。

<ignore_js_op> S@R_U%RAX{YNTCTNT_YQRHT.jpg

 





發布:

 

  • 關於Player settings播放器設置的話這里暫且不多說,發布的時候通過player setting進行發布設置,每個平台都有對應的設置參數,根據需要來設置,主要是關於程序圖標、分辨率、渲染等設置,大家可以自己試試(有些參數只有pro版才能設置)。
  • 下面我們來看看build settings對話框,左側是可發布的平台(Unity跨平台性很強大,4.0已支持發布至10種平台:IOS、Andriod、Windows、Mac、Linux、Webplayer、Flash、PS3、Xbox360、Wii u),右側是對應平台的發布設置,一般初學的話,只要會發布單機版的和webplayer的就差不多了,這兩個的話,右側的發布選項按照默認的設置就可以,當然單機版要在Target Platform中選擇對應的操作系統,webplayer的話這里我給大家介紹前兩個參數,Streamed顧名思義就是在網絡上下載的時候以流的形式,Offline Deployment,這個是可以在離線(斷網)狀態下本地運行你的webplayer程序(這里需要注意的是,默認情況下你每次打開webplayer程序的時候,瀏覽器都會自動去訪問官網更新webplayer插件,如果你沒勾選這個選項而又在沒有聯網的狀態下運行webplayer的話是無法運行的)

 

                      <ignore_js_op> ~FITOC4RCL1B7H3X]5W__)0.jpg

 



學習平台:

提供些學習平台

 


最后,再附上幾個pdf,關於Unity界面的:
<ignore_js_op> Unity界面入門教程.pdf (326.23 KB, 下載次數: 2593)
<ignore_js_op> Unity 3d界面翻譯.pdf (109.44 KB, 下載次數: 2680) <ignore_js_op> Unity中文快速腳本參考手冊.pdf (643.13 KB, 下載次數: 2366)
之前那個回復可見的腳本不隱藏了=。=
以上內容我發布了一個pdf,要的自己下載吧=。=:
<ignore_js_op> Unity基本概念.pdf (211.25 KB, 下載次數: 852)  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM