創建游戲對象和組件

http://www.maiziedu.com/course/540/ 組件教程 prefabs教程http://www.maiziedu.com/course/642-9396/

我們前面講了很多的基礎知識,最近一直很忙,很久沒出基礎系列的教程了。在今后的一段時間了我盡量擠出時間來將基礎系列的講解完。希望這套教程對那些初學者能起到一定的用處。同時自己也起到了溫故而知新的作用。 好了,廢話不多說了,下面開始介紹unity中的組件。unity3d的每一個物體的屬性都是一個一個的組件組成的,除了一些基本的組件之外,大部分組件都是可以添加和刪除的。我們添加了組件之后,他將會出現在inspector面板
我們可以在inspector面板中清楚的看到這個游戲物體所包含的所有組件Transfoem組件??刂莆矬w的位置,方向和大小。sherecollider組件AI是一個腳本文件,在unity系統中也將他作為一個組件。 還有AudioSourde組件。聲音組件,可以給物體添加聲音。? 我們看下組件是怎樣添加和刪除的,新建一個游戲物體,選中該物體,點擊工具欄中的Component->physics->Rigidbody.

然后查看inspector面板,發現面板上多出一欄Rigidbody組件,這樣我們這個物體就添加后了一個重力組件。如果我們添加好了這個組件,然后像刪除掉這個組件不用了。這個操作起來非常簡單,點擊組件右上角的按鈕,在下拉菜單中選擇RemoveComponent即可刪除該組件,如圖:

下面我們看下unity中那些組件 點擊菜單欄中的Component菜單項,得到如圖的下拉菜單

Unity3D中的組件都包含在這個菜單里面我們來大致看下都有那些功能。Mesh:網格組件,3D網格是Unity中最重要的圖形元素。Effects:效果組件,各種視覺效果組件。Physics:物理組件,是unity中非常重要的一組組件,里面包裹我們經常會用到的剛體和碰撞器。Navigation:導航組件,Audio:聲音組件。Rendering:渲染組件,這個組包括在游戲中渲染和界面元素的所有組件。光照和特定效果也包含在這個組。Scripts:腳本組件,還有就是我們為了項目制作需要,安裝的一些插件也會出現在改文件夾;在以后的章節中我們將對每一個組件進行詳細的介紹。

上次對unity的組件進行了一個概括的介紹,今天就介紹一下unity3d中的一組重要的組件,物理引擎組件。物理引擎就是在游戲中模擬真實的物理效果。什么是物理效果呢,比如在游戲中我們擊打一個物體,這個物體就會受到力的作用,當物體受到擊打力之后產生的效果,就叫做物理效果。物理引擎就是實現這種效果的一個組件。如果沒有這個組件,我們就必須用大量的代碼來描述這種效果,現在加上這個組件之后,我們只需要設置一下參數,就可以將這些復雜的效果模擬出來,極大的減少了工作量。物理引擎中主要分為兩大塊,剛體和碰創器。我們今天先來看下剛體組件,剛體組件可以給物體添加一些常見的物理屬性,比如物體的質量,摩擦力,碰創參數等等,這些屬性可用來真實的模擬物體在3D游戲世界中的一切行為。新創建的物體時不具備剛體組件的,下面我們加來看第一步,怎么給一個物體添加剛體組件首先創建一個場景,其中包括一個地面,三個GUBE。三個GUBE分別設置不同的顏色。以便區分,如圖:

選中紅色的cube然后在菜單欄中選擇Component->

hysics->Rigidbody如圖:

這樣一個剛體組件就添加完成了,運行游戲看看有什么變化。我們發現運行游戲后紅色的物體開始自由下落,其他兩個沒有變化。這是因為我們給紅色物體添加了Rigidbody組件后,它收到了重力的影響。

選中紅色的物體,在Inspector視圖中可以看到Rigidbody組件包含的屬性,下面介紹一下這些屬性的含義,

Mass:質量,數值越大物體下降的速度就越快,默認值是1,設置數值是盡量不要超過10,否則物理效果就不真實了。Drage:阻力,數值越大物體速度減慢的就越快。Angular Drag:角阻力,數值越大自身旋轉的速度減慢的就越快,UseGravity:是否使用重力。IsKinematic:是否受物理影響。Interpolate:設置圖像差值。CollisionDetection:碰創檢測。Constraints:凍結,停止某個軸向感應物理引擎的效果。??Freeze Position:凍結X,Y,Z軸的位移。Freeze Rotation:凍結X,Y,Z軸的旋轉。這是對單個物體的物理效果的設置,unity3d中也可以對整個項目中的所有物理效果進行設置,設置方法,選擇菜單欄中Edit->

roject Settings->

hysics

此時即可在Inspector面板中打開“Physics Manager”(物理管理器)界面。

Gravity:重力,默認情況下物體受Y軸向下的重力為9.8N。Default Material:默認物理材質。BounceThreshold:反彈值,Sleep Velocity:睡眠速度。當速度低于睡眠速度是,它保持靜止。Sleep Angular Velocity:睡眠角速度。當角速度低于睡眠角速度時,自身不在旋轉。Max Angular Velocity:最大角速度。Min Penetration For Penalty:用于物體與物體之間碰撞后最小穿透力。Solver Iterstion Count:迭代數量,默認值是7.Raycasts Hit Trigger:是否啟動命中觸發。Layer Collision Matrix:圖層碰撞矩陣。當這些都按照我們的項目要求設置好之后,我們就可以給我們添加了Rigidbody的物體一個力,讓它在力的作用下運動了。剛體組件可以受力的作用,比如給剛體施加一個x軸方向的力,那么該剛體綁定的物體將沿著x軸方向上向前移動,這就好比用力將物體仍出去一樣,該物體將依拋物線的形式移動。Unity中的力有兩種:一種普通力,需要設定方向和大小;? ???第二種為目標位置力,需要設定目標點的位置。下面就通過一個實例看下著兩個力的區別。新建一個C#腳本,命名為AddForec并輸入一下代碼using UnityEngine;using System.Collections; public class AddForce : MonoBehaviour {??//添加力的物體? ???public GameObject addFroceobj;??//目標位置? ???public GameObject cubeobj;? ?? ?? ?? ?? ?void OnGUI()? ???{? ?? ?? ?? ???if(GUILayout.Button("普通力",GUILayout.Height(50)))? ?? ?? ?? ???{//普通力? ?? ?? ?? ?? ?? ?? ???addFroceobj.rigidbody.AddForce(1000,0,0);? ?? ?? ?? ???}? ?? ?? ?? ???if(GUILayout.Button("位置力",GUILayout.Height(50)))? ?? ?? ?? ???{? ?? ?? ? 位置力? ?? ?? ?? ?? ?? ?? ???Vector3 force=cubeobj.transform.position-addFroceobj.transform.position;? ?? ?? ?? ?? ?? ?? ???addFroceobj.rigidbody.AddForceAtPosition(force,addFroceobj.transform.position,ForceMode.Impulse);? ?? ?? ?? ???}? ???}}設置完成后,運行游戲,當點擊普通力按鈕是,物體將會受到x軸方向上一個大小為1000的力的作用當點擊位置力是,物體將會向我們的目標物體移動,力的方式為沖擊力。好了,關于剛體就介紹這么多,下一次將介紹碰撞器的用法。

今天看下unity3d物理引擎的另外一個重要組成部分,碰撞器,在unity3d中,如果一個物體想感受碰撞,就必須添加碰撞組件。? 我們先通過一個小例子看下什么叫碰撞,物體添加碰撞和沒有添加碰撞有什么區別。首先創建一個場景,包括兩個cube一個設置為紅色一個設置為黃色,創建一個地面。然后給兩個物體添加Rigidbody,講黃色的物體的BoxCollider組件去掉。然后運行游戲,我們會發現紅色的小球與地面發生了碰撞,黃色小球沒有感應到碰撞,直接穿過地面。

下面我們看下怎么給一個物體添加碰撞器,選中需要添加碰撞器的物體,然后選擇菜單欄的Component->

kysics如圖:

圖中用紅線框住的部分就是unity給我們提供的所有的碰撞類型。Box Collider:盒子碰撞器,適用于立方體之間的碰撞,Sphere Collider:球體碰撞器適用于球體之間的碰撞Ca

ps

sule Collider:膠囊碰撞器適用于膠囊體之間的碰撞Mesh Collider:網格碰撞器他的碰撞方式由自定義模型的自身網格覺得,適用于自定義網格碰撞Wheel Collider:車輪碰撞器適用于車輪與地面之間或其他物體之間的碰撞Terrain collider:這個應該是地形碰撞器,新加上的,沒用過。下面們點擊Box Collider選項,這樣我們就給物體添加了一個盒子碰撞器。在Inspector中可以看到Box Collider組件的屬性如圖:

Is Trigger:觸發器 如激活,此碰撞器用于觸發事件,并且被物理引擎忽略。Material:物理材質 引用何種物理材質決定了他和其他對象如何作用。Center 中心 碰撞器在對象本地坐標中的位置。Size 尺寸 在X、Y、Z三維上的碰撞器尺寸。中心和尺寸就不用多講了。下面我們重點來看下Is Trigger和Material。首先看看Is Trigge,如果我們勾選了Is Trigge后面的選項,物體將不受物理引擎控制,當和一個觸發器發生碰撞時會發出三個獨特的觸發信息。觸發器用于觸發你游戲中的其他事件,比如過場動畫、自動門開啟、顯示教程信息等等。當然為了使兩個觸發器碰撞時發出碰撞事件,其中一個必須包含剛體。 。一個觸發器和一個普通碰撞器碰撞,其中之一必須附加剛體。Material是物理材質,是用來設置物體表面材質的,不同的表面材質可影響碰撞后的物理效果。下面我們看下怎么在碰撞其中添加物理材質。Unity標準資源包中提供了一些物理材質的資源,首先要將他們添加進來。方法如下,在Project視圖中單擊鼠標右鍵,在彈出的快捷菜單中選中Import Package->

husic Materials,導入資源包

標準資源包中提供了五種物理材質:

Bouncy:彈性材質。Ice:冰材質。Metal:金屬材質。Rubber:橡膠材質。Wood:木頭材質。下面看添加方法,首先在Scene視圖中選擇需要添加物理材質的物體然后在Project視圖中通過拖動將Bouncy賦值給Inspector視圖中的SphereCollider即可。

除了這五個制作好的物理材質外,還可以自己制作物理材質,制作方法如下。在prject視圖中點擊Create->

hysic Material菜單即可。

選擇我們新建的物理材質,在Inspector視圖中,看到新建物理材質的所有屬性。下面簡要介紹一下這些屬性的含義

Dynamic Friction:動態摩擦,取值0,1之間,0是最小動態摩擦,1為最大動態摩擦。Static Friiction:靜態摩擦,取值同上Bounciness:碰撞反彈系數,取值0表示無反彈,1表示最大反彈。Fiction Combine:普通碰撞后的摩擦模式Bounce Combine:反彈碰撞后的摩擦模式Friction Direction:摩擦方向,方向分為x,y,z軸。Dynamic Friction2:動摩擦系數Ststic Friction2:靜摩擦系數。按照需求調節完成。這樣一個新的物理材質就制作完成了。也可改變不同參數,看看每個參數對物體的影響。

www.maiziedu.com/course/540/?組件教程

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,572評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,071評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,409評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,569評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,360評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,895評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,979評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,123評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,643評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,559評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,742評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,250評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,981評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,363評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,622評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,354評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,707評論 2 370

推薦閱讀更多精彩內容