(轉(zhuǎn))Unity3D基礎(chǔ)知識(shí)學(xué)習(xí)筆記

1匙睹、基礎(chǔ)知識(shí):

標(biāo)題欄

菜單欄

工具欄:變換工具异剥、gizmos切換瑟由、播放控件、層列表冤寿、布局列表

功能窗口

2歹苦、資源及資源類型:在project里面能夠create的資源。project面板可以對(duì)資源進(jìn)行組織管理督怜,創(chuàng)建資源殴瘦,搜索資源。

3号杠、模型和角色動(dòng)畫:

角色動(dòng)畫創(chuàng)建過程時(shí):創(chuàng)建角色模型蚪腋、骨骼設(shè)置、蒙皮姨蟋、烘焙動(dòng)畫屉凯。

maya、3dmax創(chuàng)建的模型芬探、動(dòng)畫神得,用插件輸出(fbx厘惦、obj)或者軟件自己的格式(max偷仿、blend),unity自身轉(zhuǎn)換宵蕉。

maya酝静、3dmax創(chuàng)建的模型、動(dòng)畫羡玛,需要把IK/FK動(dòng)畫烘焙為關(guān)鍵幀動(dòng)畫别智,然后導(dǎo)入到unity中,才能識(shí)別稼稿。關(guān)鍵幀動(dòng)畫能夠節(jié)省很多計(jì)算資源薄榛,因?yàn)镮K/FK運(yùn)動(dòng)學(xué)動(dòng)畫是每一幀都會(huì)涉及到運(yùn)動(dòng)學(xué)計(jì)算的。

maya让歼、3dmax創(chuàng)建的模型敞恋、動(dòng)畫,可以全部導(dǎo)入到unity中谋右,然后分割硬猫;或者按照一定的命名規(guī)則,先分割再導(dǎo)入到untiy中。

4啸蜜、材質(zhì)和著色器:

材質(zhì)和著色器都是屬于資源類型坑雅,在project面板中create,或者外部導(dǎo)入衬横,紋理即圖片裹粤,不能使用unity創(chuàng)建,但是可以通過ps等圖形處理軟件創(chuàng)建編輯之后蜂林,導(dǎo)入到unity中使用蛹尝。

Mesh Renderer組件:包含材質(zhì)、著色器悉尾、紋理(貼圖)的選項(xiàng)和參數(shù)設(shè)置

可以這樣理解:紋理+著色器=材質(zhì)

2D紋理:一張2D貼圖

movie紋理:視頻(mov/mpg/mpeg/mp4/avi/asf)通過quick time導(dǎo)入之后突那,被unity自動(dòng)轉(zhuǎn)換為ogg theroa格式。即動(dòng)畫紋理构眯,之后可以像普通紋理一樣使用愕难。

5、聲音文件:

聲音資源存放于project面板中惫霸,可以通過component中的audio listener和audio source組件進(jìn)行使用猫缭。

6、prefab預(yù)設(shè):

prefab預(yù)設(shè):就是把設(shè)計(jì)好的游戲物體存為一個(gè)備份壹店,當(dāng)需要生成多個(gè)實(shí)例化物體時(shí)可以直接拷貝使用猜丹,避免了重復(fù)造輪子的問題。

重用性和運(yùn)行實(shí)例化:創(chuàng)建預(yù)設(shè)的instance

實(shí)例的繼承性:修改預(yù)設(shè)屬性硅卢,所有的實(shí)例會(huì)跟著改變射窒。

實(shí)例的重載:?jiǎn)为?dú)修改實(shí)例,則只會(huì)對(duì)此實(shí)例生效将塑。

7脉顿、游戲物體使用組件來豐富功能,組件使用project里面的資源來設(shè)置屬性点寥。

8艾疟、scene視圖操作;

透視模式persp敢辩、正交模式iso

snap移動(dòng)蔽莱,按住ctrl鍵拖動(dòng)物體,以一定的增量來移動(dòng)戚长。

表面移動(dòng)盗冷,ctrl+shift拖動(dòng)物體,一個(gè)物體在另一個(gè)物體表面移動(dòng)历葛。

頂點(diǎn)吸附:v鍵激活移動(dòng)物體頂點(diǎn)正塌,選擇好之后拖動(dòng)嘀略,可在另一個(gè)物體的頂點(diǎn)上移動(dòng)。

9乓诽、燈光和攝像機(jī):

燈光類型:spot(聚光燈)帜羊、directional(方向光)、point(點(diǎn)燈光)鸠天、area(區(qū)域光)

10讼育、unity腳本的使用:

5*Time.deltaTime:每秒5度或者5米,和unity的幀速率無關(guān)稠集。deltaTime記錄了上一幀執(zhí)行完成的時(shí)間奶段。 1/FPS 這里的FPS是實(shí)時(shí)變化的。

11剥纷、C#腳本:test01.cs test02.cs

test01.cs引用test02.cs變量

需要把變量定義為public static類型痹籍,然后可以直接引用 test02.var;test02.cs

可以在test02中定義方法(讀寫變量的實(shí)現(xiàn)),然后在test01中調(diào)用test02的方法即可實(shí)現(xiàn)

在test02中定義靜態(tài)方法public static test02 instance;并在Awake中賦值為this晦鞋,在test01中調(diào)用此方法test02.instance.var即可

test01和test02屬于同一個(gè)GameObject:直接調(diào)用getcomponent獲取腳本組件

test01和test02不屬于同一個(gè)GameObject:可以通過定義test02所屬GameObject的tag蹲缠,然后在test01中FindGameObjectWithTag或者直接在test01中Find而不定義tag

12、GameObject的獲扔贫狻:

通過腳本里面定義public的GameObject的變量线定,然后在Inspector面板中拖動(dòng)另一個(gè)GameObject獲取

通過在腳本里面Find函數(shù)實(shí)現(xiàn)(直接Find或者給GameObject定義tag,然后通過Findtag來獲热仿颉)

13斤讥、腳本使用:

腳本里面的時(shí)間控制:

time類

yield WaitForSecond(5);//等待5s鐘之后再次返回執(zhí)行。

腳本里面的隨機(jī)數(shù)產(chǎn)生:random類

腳本物體間通信方式:

GameObject.SendMessage:向自身的腳本中發(fā)送消息湾趾。參數(shù)為函數(shù)名和函數(shù)的參數(shù)

GameObject.BroadcastMessage:向自身及子物體的腳本中發(fā)送消息

GameObject.SendMessageUpwards:向自身及父物體的腳本中發(fā)送消息

使用delegate委托特性來實(shí)現(xiàn)芭商。

用一段代碼來理解事件/委托機(jī)制的用法:下面的代碼是點(diǎn)擊中文,顯示中文名字撑帖,點(diǎn)擊英文蓉坎,顯示英文名字:

```

usingUnityEngine;

usingSystem.Collections;

publicclassTestDelegate?:?MonoBehaviour

{

//定義一個(gè)委托(格式是不是很類很像),用來指向我們某個(gè)函數(shù)胡嘿。(c++里面的指針函數(shù))

//param參數(shù)是名字

privatedelegatevoidDebugString(string?param);

///

///?輸出中文名字

///

publicvoidDebugNameOfChina(string?str)

{

? ? Debug.Log("中文名字:"+?str);

}

///

///?輸出英文名字

///

publicvoidDebugNameOfEnglish(string?str)

{

Debug.Log("English?Name:"+?str);

}

//定義一個(gè)委托的變量事件

privateDebugString?handlerDebugString;

voidOnGUI()

{

if(GUILayout.Button("輸出中文名字"))

{

//我想輸出中文名字的話就給handlerDebugString??賦值成輸出中文名字的這個(gè)函數(shù)DebugNameOfChina

handlerDebugString?=?DebugNameOfChina;

handlerDebugString("丁小未");

}

elseif(GUILayout.Button("Debug?English?Name"))

{

//我想輸出英文名字的話就給handlerDebugString??賦值成輸出中文名字的這個(gè)函數(shù)DebugNameOfEnglish

handlerDebugString?=?DebugNameOfEnglish;

handlerDebugString("DingXiaowei");

}

}

}

```

14、物理引擎:碰撞器與觸發(fā)器钳踊、射線碰撞檢測(cè)

collider組件衷敌、rigidbody組件。

constant force組件:世界坐標(biāo)系方向力拓瞪,局部坐標(biāo)系方向力缴罗,世界坐標(biāo)系扭矩力,局部坐標(biāo)系扭矩力

在腳本里面使用rigidbody類祭埂,和力有關(guān)的面氓,需要放到FixedUpdate里面更新兵钮。

能檢測(cè)碰撞發(fā)生的方式有兩種,一種是利用碰撞器舌界,另一種則是利用觸發(fā)器掘譬。

碰撞器:一群組件,它包含了很多種類呻拌,比如:Box Collider(盒碰撞體)葱轩,Mesh Collider(網(wǎng)格碰撞體)等,這些碰撞器應(yīng)用的場(chǎng)合不同藐握,但都必須加到GameObjecet身上靴拱。

觸發(fā)器,只需要在檢視面板中的碰撞器組件中勾選IsTrigger屬性選擇框猾普。

碰撞器是觸發(fā)器的載體袜炕,而觸發(fā)器只是碰撞器身上的一個(gè)屬性。

當(dāng)Is Trigger=false時(shí)初家,碰撞器根據(jù)物理引擎引發(fā)碰撞妇蛀,產(chǎn)生碰撞的效果,可以調(diào)用OnCollisionEnter/Stay/Exit函數(shù)笤成;

當(dāng)Is Trigger=true時(shí)评架,碰撞器被物理引擎所忽略,沒有碰撞效果炕泳,可以調(diào)用OnTriggerEnter/Stay/Exit函數(shù)纵诞。

兩個(gè)物體碰撞,可以不要rigidbody存在培遵,但必須要有collider組件存在浙芙。只要勾選了is Trigger,就會(huì)進(jìn)入OnTriggerEnter方法籽腕。

如果想實(shí)現(xiàn)兩個(gè)剛體物理的實(shí)際碰撞效果時(shí)候用OnCollisionEnter嗡呼,Unity引擎會(huì)自動(dòng)處理剛體碰撞的效果。如果想在兩個(gè)物體碰撞后自己處理碰撞事件用OnTriggerEnter皇耗。

發(fā)送一條射線:physics.Raycast()南窗,出參為RayCastHit類型變量 hit.collider.gameObject

15、物理引擎:joint關(guān)節(jié)組件

joint關(guān)節(jié)組件依賴于rigidbody剛體組件

hinge joint鉸鏈關(guān)節(jié):開關(guān)門郎楼、兩個(gè)物體彈簧等

fixed joint固定關(guān)節(jié):兩個(gè)物體的脫離效果

spring joint彈簧關(guān)節(jié):

character joint角色關(guān)節(jié):實(shí)際是一個(gè)球形關(guān)節(jié)万伤,常用在人模型關(guān)節(jié)處,所以稱為角色關(guān)節(jié)

configurable joint配置關(guān)節(jié):極高的可配置性呜袁,可以配置出以上所有關(guān)節(jié)的效果

16敌买、mecanim動(dòng)畫系統(tǒng):

MAYA或3DMAX(角色建模、骨骼設(shè)置阶界、蒙皮虹钮、動(dòng)畫聋庵、烘焙)->導(dǎo)出到unity中->動(dòng)畫分割(如果是一個(gè)完整的動(dòng)畫)->

mecanim系統(tǒng)專門為人類模型資源提供了一套avatar系統(tǒng)。

avatar的創(chuàng)建過程:分析導(dǎo)入角色資源骨骼結(jié)構(gòu)芙粱,與mecanim提供的標(biāo)準(zhǔn)骨骼結(jié)構(gòu)對(duì)比祭玉,最后轉(zhuǎn)換或標(biāo)志位mecanim可以識(shí)別的骨骼結(jié)構(gòu)。通過avatar的創(chuàng)建宅倒,可以實(shí)現(xiàn)角色之間的retargeting(角色資源的重用)

在角色資源的輸入配置中攘宙,Rig的Animation Type選擇Humanoid,選擇Apply之后自動(dòng)生成Avatar拐迁,之后可以通過configure avatar手動(dòng)調(diào)整蹭劈。

可以調(diào)整關(guān)節(jié)的mapping映射、調(diào)整muscles的運(yùn)動(dòng)范圍

body mask身體遮罩:在輸入配置的animation中线召,有mask選項(xiàng)铺韧,目的是讓身體的某部分運(yùn)動(dòng)失效。這樣減少動(dòng)畫曲線的數(shù)量缓淹,減少計(jì)算量哈打,優(yōu)化CPU和內(nèi)存的性能。

retargeting:只要角色創(chuàng)建了avatar讯壶,不同角色之間的animator controller就可以重用料仗,這就是retargeting的原理。在animator組件中進(jìn)行設(shè)置伏蚊。

動(dòng)畫片段設(shè)置:有些動(dòng)畫效果只播放一遍立轧,有些需要循環(huán)播放。在角色輸入的animations中設(shè)置躏吊。

root motion:角色的移動(dòng)重心谆沃,勾選上就運(yùn)用到scene的實(shí)例中拓哺,角色就可以運(yùn)動(dòng)校读,否則角色沒有重心指向账月,不能運(yùn)動(dòng)。通過root motion就可以使用角色動(dòng)畫驅(qū)動(dòng)角色運(yùn)動(dòng)赁项。

root motion的腳本控制:如果不勾選葛躏,又想讓角色運(yùn)動(dòng),則需要用腳本控制肤舞,一是在角色片段中創(chuàng)建curve曲線紫新,二是在animator狀態(tài)機(jī)中添加變量,三是創(chuàng)建腳本李剖,重寫方法OnAnimatorMove。

blendtree:幾個(gè)類似的動(dòng)畫片段復(fù)合為一個(gè)動(dòng)畫片段囤耳,在動(dòng)畫狀態(tài)機(jī)里面創(chuàng)建篙顺。比如(左走偶芍,直走,右走動(dòng)畫片段可以融合為一個(gè)blendtree)

嵌套blendtree可以實(shí)現(xiàn)走到跑的切換效果德玫。

blendtree的參數(shù)設(shè)置:1D 2D效果

mecanim動(dòng)畫層的使用:使用層匪蟀、身體遮罩、權(quán)重等設(shè)置宰僧,可以實(shí)現(xiàn)兩個(gè)層的動(dòng)畫同時(shí)播放的效果材彪,比如一邊跑一邊射擊。

mecanim反向運(yùn)動(dòng)學(xué)運(yùn)用:可以讓角色去精確的抓取物體琴儿。腳本里面需要重寫OnAnimatorIK段化,在動(dòng)畫層中,打開IK Pass選項(xiàng)造成。

mecanim目標(biāo)匹配:通過animator.MatchTarget函數(shù)显熏,可以實(shí)現(xiàn)角色攀爬的效果,定位到某個(gè)具體目標(biāo)上晒屎。

一般性角色動(dòng)畫:非人類角色動(dòng)畫喘蟆,也可以使用mecanim動(dòng)畫系統(tǒng),唯一區(qū)別是avatar不可配置鼓鲁。

腳本實(shí)現(xiàn)角色跟隨效果蕴轨。

腳本實(shí)現(xiàn)群組動(dòng)畫效果。

17骇吭、輸入與控制:

輸入接口:input類

float h = Input.GetAxis("Horizontal");

float v = Input.GetAxis("Vertical");

判斷輸入值橙弱,然后控制player的移動(dòng)

getaxis、getkey绵跷、getbutton膘螟、getjoystick等函數(shù)。

注意:unity GUI事件在一幀中可能觸發(fā)多次碾局。OnGUI函數(shù)可能在一幀中執(zhí)行多次荆残。

18、角色控制器:CharacterController組件

角色控制常規(guī)方式:rigidbody净当、角色控制器(最常用)

角色控制器內(nèi)置一個(gè)capsule collider内斯,所以可以進(jìn)行碰撞檢測(cè)。

角色控制器+第一人陳視角可以實(shí)現(xiàn)漫游效果像啼。

19俘闯、粒子系統(tǒng):particle system

創(chuàng)建:直接創(chuàng)建一個(gè)粒子系統(tǒng)GameObject或者先創(chuàng)建一個(gè)Empty的對(duì)象,再添加粒子系統(tǒng)組件忽冻。

粒子系統(tǒng)功能十分強(qiáng)大真朗,可以創(chuàng)建出各種需要的特效。

20僧诚、樹:

Tree component

可以使用程序自動(dòng)生成遮婶,但是如果手動(dòng)調(diào)節(jié)過后蝗碎,一些參數(shù)將不再可調(diào)。

樹的基本屬性旗扑、樹干的基本屬性蹦骑、樹葉的基本屬性、樹與地形的配合使用臀防。

21眠菇、地形引擎:Terrian

地形工具欄十分重要。下面的操作都是基于工具欄來選擇和設(shè)置袱衷。

地形創(chuàng)建與繪制:注意海平面flatten的設(shè)置才能產(chǎn)生凹地效果捎废。

地形紋理和材質(zhì)的選擇和使用。

地形中添加樹木祟昭、植被缕坎。

地形工具欄中最后一項(xiàng)是地形設(shè)置。包括基本的地形分辨率顯示篡悟,樹木植被顯示谜叹,風(fēng)等效果的設(shè)置。

可以使用插件EasyRoads3D來創(chuàng)建公路效果搬葬。

22荷腊、GUI圖形用戶界面:

UGUI和NGUI學(xué)習(xí)。



原文章地址:blog.csdn.net/nobcaup/article/details/51502786

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末急凰,一起剝皮案震驚了整個(gè)濱河市女仰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌抡锈,老刑警劉巖疾忍,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異床三,居然都是意外死亡一罩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門撇簿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來聂渊,“玉大人,你說我怎么就攤上這事四瘫『核裕” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵找蜜,是天一觀的道長(zhǎng)饼暑。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么撵孤? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任迈着,我火速辦了婚禮竭望,結(jié)果婚禮上邪码,老公的妹妹穿的比我還像新娘。我一直安慰自己咬清,他們只是感情好闭专,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著旧烧,像睡著了一般影钉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上掘剪,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天平委,我揣著相機(jī)與錄音,去河邊找鬼夺谁。 笑死廉赔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的匾鸥。 我是一名探鬼主播蜡塌,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼勿负!你這毒婦竟也來了馏艾?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤奴愉,失蹤者是張志新(化名)和其女友劉穎琅摩,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锭硼,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡房资,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了账忘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片志膀。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖鳖擒,靈堂內(nèi)的尸體忽然破棺而出溉浙,到底是詐尸還是另有隱情,我是刑警寧澤蒋荚,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布戳稽,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏惊奇。R本人自食惡果不足惜互躬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望颂郎。 院中可真熱鬧吼渡,春花似錦、人聲如沸乓序。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽替劈。三九已至寄雀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陨献,已是汗流浹背盒犹。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留眨业,地道東北人急膀。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像坛猪,于是被迫代替她去往敵國(guó)和親脖阵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容