日本超碰在线免费看,日本A级不打码按摩片,学生把老师弄高潮视频,一二三四国产精品,久久av色,免费麻豆av,两个男人互操

服務(wù)熱線熱線:

13818745178

九游(ninegame)娛樂中國官方網(wǎng)頁-企業(yè)入口

企業(yè)動(dòng)態(tài)

Unity物理引擎是什么有哪些關(guān)鍵概念需要掌握

發(fā)布時(shí)間:2025-03-30點(diǎn)擊次數(shù):

  Unity ID允許您購買和/或訂閱Unity產(chǎn)品和服務(wù),在Asset Store中購物并參與Unity社區(qū)。

  Unity物理引擎可以讓物體受到近似于自然界中各種力(例如重力、速度、加速度和摩擦力)的作用。 它允許具有不同物理屬性的各種對象與場景中的其他對象進(jìn)行動(dòng)態(tài)交互。

  物理引擎可通過(近似于)現(xiàn)實(shí)世界中存在的作用力(例如重力、速度和加速度)來控制物體。

  當(dāng)游戲?qū)ο笙嗷ヅ鲎不蛳嘟粫r(shí),碰撞體會(huì)幫助Unity記錄這一過程。 游戲?qū)ο蟊仨氂懈郊拥腞igidBody(剛體)組件才能發(fā)生碰撞。 碰撞體的類型包括:Box Collider(盒碰撞體)、Capsule Collider(膠囊碰撞體)、Mesh Collider(網(wǎng)格碰撞體)、Sphere Collider(球形碰撞體)、Terrain Collider(地形碰撞器)和Wheel Collider(車輪碰撞體)(圖01)。 請注意,Mesh Collider需要占用更多的計(jì)算資源,計(jì)算成本較高。 如果顯示的網(wǎng)格非常細(xì)密,最好使用“計(jì)算成本較低”的網(wǎng)格進(jìn)行碰撞。 借助ProBuilder,可以構(gòu)建更簡單的“代理”網(wǎng)格以滿足復(fù)雜網(wǎng)格的形狀要求。

  “GameObject”下拉菜單中的許多Unity 3D對象都包含碰撞體。 要為獨(dú)立或空的游戲?qū)ο髥⒂肬nity物理引擎,請?jiān)跈z查器窗口中選擇“Add Component”按鈕,選擇“Physics”,然后指定碰撞體的類型。 這里,我們選擇的是“Box Collider”

  可以通過選中相應(yīng)的復(fù)選框來啟用觸發(fā)器。觸發(fā)器的功能與碰撞體相同,但會(huì)禁用組件上的物理引擎,從而使對象能夠經(jīng)某個(gè)區(qū)域穿過它。當(dāng)對象進(jìn)入或離開觸發(fā)器時(shí),可以調(diào)用事件

  其中一個(gè)對象必須附加Rigidbody組件。最佳做法是,在觸發(fā)器內(nèi)移動(dòng)的對象具有此組件。

  Rigidbody組件(圖04)可以讓游戲?qū)ο笫艿轿锢韺傩裕ɡ缰亓Γ┑挠绊?。這其中還包括質(zhì)量、速度和阻力(空氣阻力)等屬性。 質(zhì)量較大的對象受質(zhì)量較小的對象的影響較小,反之亦然。阻力會(huì)影響速度隨時(shí)間的衰減。角阻力會(huì)影響角速度。

  “Is Kinematic”復(fù)選框允許剛體通過Unity物理引擎影響其他對象,但自身卻不會(huì)受到影響。例如,VR游戲中的“Hand Avatar”可以通過物理引擎與對象相互作用,但我們并不希望物理引擎作用到手上。 “Is Kinematic”復(fù)選框還將影響由動(dòng)畫引擎控制的對象。如果選中“Is Kinematic”復(fù)選框(開啟),動(dòng)畫引擎便會(huì)影響相關(guān)對象。 如果取消選中(關(guān)閉),那么起控制作用的就是物理引擎。 Interpolation:碰撞檢測方式 Interpolate:對象的平滑移動(dòng)基于動(dòng)畫時(shí)間軸中前一幀的信息。 Extrapolate:對象的平滑運(yùn)動(dòng)基于對下一幀的猜測。 Collision Detection:碰撞檢測速率 Discrete:默認(rèn)設(shè)置 Continuous:檢測與靜態(tài)對象交互的快速運(yùn)動(dòng)對象 Continuous Dynamic:檢測與其他快速運(yùn)動(dòng)對象交互的快速運(yùn)動(dòng)對象 Continuous Speculative:預(yù)測碰撞檢測 Constraints:定義哪些軸的對象不應(yīng)移動(dòng) 此外,我們可以通過在下拉菜單中進(jìn)行選擇來重新定義和更改Unity物理引擎值的元素:“Edit”“Project Settings”“Physics”

  與其他游戲?qū)ο蠼换r(shí),可用于碰撞體的函數(shù)包括: OnCollisionEnter (Collision) 在記錄碰撞時(shí)調(diào)用。 例如:areTag(Enemy) { //Hit the enemy } }

  OnCollisionStay (Collision) 在碰撞期間調(diào)用 OnCollisionExit (Collision) 在碰撞停止時(shí)調(diào)用 為了啟用或禁用重力,可以使用useGravity函數(shù)。Gravity 為了向特定方向添加作用力,可以使用.AddForce()函數(shù)。 *rigidBody.AddForce(Vector3) 為了添加繞軸的旋轉(zhuǎn)力,可以使用.AddTorque()函數(shù)。 rigidBody.AddTorque(Vector3, Force Mode) 請注意,在FixedUpdate()中調(diào)用AddForce和AddTorque時(shí),將會(huì)隨時(shí)間推移施加此作用力。

  #作用力方式 Acceleration:施加以恒定速率增加的作用力 Force:默認(rèn)設(shè)置,即在考慮質(zhì)量因素的情況下逐漸施加作用力。 Impulse:施加瞬時(shí)作用力,而不是逐漸增加的作用力。 VelocityChange:沿不同方向施加瞬時(shí)作用力。忽略質(zhì)量因素。

  #關(guān)于更新 Update: 每幀調(diào)用一次。 FixedUpdate: 每幀調(diào)用多次。 FixedUpdate期間會(huì)調(diào)用大多數(shù)物理計(jì)算。顧名思義,計(jì)算之間的時(shí)間是固定的。

  控制表面的摩擦力與其他表面相互作用的方式。 物理碰撞體可以應(yīng)用自定義材質(zhì)。 您可以指定以下值:Dynamic Friction (動(dòng)態(tài)摩擦力)、Static Friction(靜態(tài)摩擦力)和Bounciness(彈力)。您也可以自定義以下參數(shù):Friction Combine(摩擦力合并)和Bounce Combine(合并反彈)。 要?jiǎng)?chuàng)建自定義物理材質(zhì),請從“Top Menu”下拉菜單中選擇:“Assets”“Create”“Physic Material”(圖06),然后在“Project”窗口中選擇新創(chuàng)建的物理材質(zhì)并將其拖到Inspector中游戲?qū)ο蟮摹癕aterial”屬性上,從而將其添加至游戲?qū)ο蟆?/p>

  Joint(關(guān)節(jié))組件用于將一個(gè)剛體連接到另一個(gè)剛體或空間中的固定點(diǎn)。關(guān)節(jié) 施加使剛體移動(dòng)的作用力。通過關(guān)節(jié)限制也可以限制某些運(yùn)動(dòng)。 物理關(guān)節(jié)的類型包括:Character Joint(角色關(guān)節(jié))、Configurable Joint(可配置關(guān)節(jié))、Fixed Joint(固定關(guān)節(jié))、Hinge Joint(鉸鏈關(guān)節(jié))和Spring Joint(彈簧關(guān)節(jié))

  Character Joint:模擬角色的關(guān)節(jié),例如髖關(guān)節(jié)或肩關(guān)節(jié)。 此選項(xiàng)限制剛體的所有線性自由運(yùn)動(dòng),可實(shí)現(xiàn)全角度自由運(yùn)動(dòng)。附著在Character Joint上的剛體可從共用原點(diǎn)圍繞每個(gè)軸和樞軸旋轉(zhuǎn)。 Configurable Joint:模擬任何骨骼關(guān)節(jié),例如布娃娃中的關(guān)節(jié)。您可以對此關(guān)節(jié)進(jìn)行配置,從而強(qiáng)制和限制剛體以某個(gè)自由度移動(dòng)。 Fixed Joint:限制剛體的運(yùn)動(dòng),使其跟隨所附著的剛體進(jìn)行移動(dòng)。當(dāng)您需要一種能輕松分離的剛體,或者您想關(guān)聯(lián)兩個(gè)剛體的運(yùn)動(dòng)而無需在“Transform”層次結(jié)構(gòu)中建立父級關(guān)系時(shí),即可使用這種關(guān)節(jié)。 Hinge Joint:在共用原點(diǎn)上將一個(gè)剛體附加到另一個(gè)剛體或空間點(diǎn)上,并允許剛體從該原點(diǎn)圍繞特定的軸旋轉(zhuǎn)??捎糜谀M門和手指關(guān)節(jié)。 Spring Joint:保持剛體彼此分開,但剛體之間的距離可略微伸展。彈簧就像一塊彈性體,它會(huì)嘗試聚攏兩個(gè)錨定點(diǎn)并維持原來的位置。

  在一個(gè)物理對象與另一個(gè)物理對象之間投射光線或建立隱形連接。 Physics.Raycast (Vector3 Origin, Vector3 Direction) Physics.Raycast (Vector3 Origin, Vector3 Direction, RaycastHit Info, float Distance, int Layermask) 或 Physics.Raycast (Ray RayName, RaycastHit Info, float Distance, int Layermask)

  ##參數(shù): origin: 光線在“世界”空間中的起點(diǎn)。 direction: 光線在“物體”空間中的投射方向。 maxDistance: 光線用于檢查碰撞時(shí)的最大距離。 layerMask: 一種用于在投射光線時(shí)有選擇地忽略碰撞體的圖層蒙版。 queryTriggerInteraction:指定此查詢是否應(yīng)命中觸發(fā)器。 可以為發(fā)生碰撞的游戲?qū)ο蠓峙湟粋€(gè)新標(biāo)簽或已有標(biāo)簽,這樣會(huì)更易于識(shí)別RaycastHit

  在本例中,Raycast將從附加該腳本的任何游戲?qū)ο蟮脑c(diǎn)向下投射光線。 如果“Transform”位置與地面(帶有環(huán)境標(biāo)簽的游戲?qū)ο螅┲g的距離為“DeploymentHeight”,則調(diào)用以下函數(shù):DeployParachute()。 使用Raycast時(shí),最佳做法是: 減少場景中Raycast的數(shù)量。 不要在FixedUpdate()或Update()函數(shù)內(nèi)部調(diào)用Raycast。 應(yīng)避免使用MeshColliders。

  #圖層和碰撞矩陣 將默認(rèn)行為分配給游戲?qū)ο蟮哪J(rèn)圖層時(shí),它會(huì)與所有對象發(fā)生碰撞。這樣會(huì)造成效率低下。 因此,可以將游戲?qū)ο蠓峙涞揭粋€(gè)新的圖層。這些圖層之間的碰撞關(guān)系可以由碰撞矩陣來確定。 要打開物理引擎設(shè)置,請從“Top Menu”下拉菜單中選擇: “Edit”“Project Settings”“Physics”。 “Project Settings”窗口的底部就是圖層碰撞矩陣

  九游娛樂中心

  #優(yōu)化注意事項(xiàng) 最好明確定義哪些對象與其他對象發(fā)生碰撞,從而減少計(jì)算次數(shù)和腳本編寫。 此外,建議不要將某些物理屬性應(yīng)用于靜態(tài)對象。 例如,不要在靜態(tài)對象上使用“Transform”, 否則會(huì)令性能變差。

  Unity 2021之后WebGL PlayerPrefs限制存儲(chǔ)內(nèi)容只能在1M以內(nèi)

  九游娛樂中心

上一篇:Unreal Engine:游戲

返回列表

下一篇:虛幻4引擎 v45