Unity-導(dǎo)航網(wǎng)格構(gòu)建組件 API
導(dǎo)航網(wǎng)格構(gòu)建組件為您提供在運(yùn)行時(shí)以及在 Unity Editor 中構(gòu)建(也稱(chēng)為烘焙)和使用導(dǎo)航網(wǎng)格的額外控制力。
導(dǎo)航網(wǎng)格修改器不在 Unity 標(biāo)準(zhǔn)安裝中;有關(guān)如何訪問(wèn)這些組件的信息,請(qǐng)參閱高級(jí)導(dǎo)航網(wǎng)格構(gòu)建組件的文檔。
導(dǎo)航網(wǎng)格表面 (NavMeshSurface)
屬性
agentTypeID
?– 需要構(gòu)建導(dǎo)航網(wǎng)格的代理類(lèi)型的 ID。collectObjects
?– 定義如何從場(chǎng)景收集輸入幾何體,為?UnityEngine.AI.CollectObjects
?之一:All
?– 使用場(chǎng)景中的所有對(duì)象。Volume
?– 使用場(chǎng)景中與包圍體接觸的所有游戲?qū)ο螅ㄕ?qǐng)參閱?size
?和?center
)Children
?– 使用導(dǎo)航網(wǎng)格表面 (NavMesh Surface) 附加到的游戲?qū)ο蟮乃凶訉?duì)象。size
?– 構(gòu)建體積的尺寸。該大小不受縮放影響。center
?– 構(gòu)建體積的中心(相對(duì)于變換中心)。layerMask
?– 位掩碼,用于定義必須將哪些層上的游戲?qū)ο蟀诤姹褐小?/p>useGeometry
?– 定義用于烘焙的幾何體,為?UnityEngine.NavMeshCollectGeometry
?之一:RenderMeshes
?– 使用渲染網(wǎng)格和地形中的幾何體PhysicsColliders
?– 使用碰撞體和地形中的幾何體。defaultArea
?– 所有輸入幾何體的默認(rèn)區(qū)域類(lèi)型(除非另有說(shuō)明)。ignoreNavMeshAgent
?– 如果具有導(dǎo)航網(wǎng)格代理 (Nav Mesh Agent) 組件的游戲?qū)ο髴?yīng)作為輸入被忽略,則為 True。ignoreNavMeshObstacle
?– 如果具有導(dǎo)航網(wǎng)格障礙物 (Nav Mesh Obstacle) 組件的游戲?qū)ο髴?yīng)作為輸入被忽略,則為 True。overrideTileSize
?– 如果設(shè)置了區(qū)塊大小,則為 True。tileSize
?– 以體素為單位的區(qū)塊大?。ńM件描述包含有關(guān)如何選擇區(qū)塊大小的信息)。overrideVoxelSize
?– 如果設(shè)置了體素大小,則為 True。voxelSize
?– 以世界單位表示的體素大?。ńM件描述包含有關(guān)如何選擇區(qū)塊大小的信息)。buildHeightMesh
?– 未實(shí)現(xiàn)。bakedNavMeshData
?– 對(duì)表面使用的 NavMeshData 的引用,如果未設(shè)置,則為 null。activeSurfaces
?– 所有激活狀態(tài)的導(dǎo)航網(wǎng)格表面的列表。
__注意:__上述值會(huì)影響烘焙的結(jié)果,因此必須調(diào)用?Bake()
?來(lái)包含它們。
公共函數(shù)
void Bake ()
根據(jù)導(dǎo)航網(wǎng)格表面上設(shè)置的參數(shù)烘焙新的 NavMeshData??赏ㄟ^(guò)?bakedNavMeshData
?訪問(wèn)該數(shù)據(jù)。
導(dǎo)航網(wǎng)格修改器 (NavMesh Modifier)
屬性
overrideArea
?– 如果修改器覆蓋區(qū)域類(lèi)型,則為 True。area
?– 要應(yīng)用的新區(qū)域類(lèi)型。ignoreFromBuild
?– 如果包含修改器的游戲?qū)ο蠹捌渥禹?xiàng)不應(yīng)當(dāng)用于導(dǎo)航網(wǎng)格烘焙,則為 True。activeModifiers
?– 所有激活狀態(tài)的導(dǎo)航網(wǎng)格修改器的列表。
公共函數(shù)
bool AffectsAgentType(int agentTypeID)
如果修改器應(yīng)用于指定的代理類(lèi)型,則返回 true,否則返回 false。
導(dǎo)航網(wǎng)格修改器體積 (NavMesh Modifier Volume)
屬性
size
?– 包圍體的大?。ú捎镁植靠臻g單位)。變換會(huì)影響該大小。center
?– 包圍體的中心(采用局部空間單位)。變換會(huì)影響該中心。area
?– 要應(yīng)用于包圍體內(nèi)的導(dǎo)航網(wǎng)格區(qū)域的區(qū)域類(lèi)型。
公共函數(shù)
bool AffectsAgentType(int agentTypeID)
如果修改器應(yīng)用于指定的代理類(lèi)型,則返回 true。
導(dǎo)航網(wǎng)格鏈接 (NavMesh Link)
屬性
agentTypeID
?– 可使用該鏈接的代理類(lèi)型。startPoint
?– 鏈接的起點(diǎn)(采用局部空間單位)。變換會(huì)影響該位置。endPoint
?– 鏈接的終點(diǎn)(采用局部空間單位)。變換會(huì)影響該位置。width
?– 鏈接的寬度(采用世界長(zhǎng)度單位)。bidirectional
?– 如果為 true,則可以雙向遍歷鏈接。如果為 false,只能按照從起點(diǎn)到終點(diǎn)的方向遍歷鏈接。autoUpdate
?– 如果為 true,則鏈接將更新端點(diǎn)以跟隨每幀的游戲?qū)ο笞儞Q。area
?– 鏈接的區(qū)域類(lèi)型(用于計(jì)算尋路成本)。
公共函數(shù)
void UpdateLink()
更新鏈接以便與關(guān)聯(lián)的變換匹配。這對(duì)于更新鏈接很有用(例如在更改變換位置之后),但如果啟用了?autoUpdate
?屬性,則不需要。但是,如果您很少更改鏈接變換,則調(diào)用?UpdateLink
?可能對(duì)性能產(chǎn)生的影響要小得多。