久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Unity 6 從零復(fù)刻 Unreal EQS:環(huán)境查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

Unity 6 從零復(fù)刻 Unreal EQS:環(huán)境查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 這次我們來看一個(gè)很經(jīng)典但 Unity 側(cè)沒有內(nèi)置的 AI 玩法Unreal Engine 里的 EQS也就是 Environment Query System環(huán)境查詢系統(tǒng)。很多射擊、潛行、生存游戲里AI 不會(huì)傻乎乎直線沖鋒而是會(huì)找掩體、繞后、選制高點(diǎn)看起來很聰明背后就是這套“生成候選位置 多維度打分 選擇最優(yōu)解”的邏輯在驅(qū)動(dòng)。比較麻煩的是Unity 里沒有完全等價(jià)的現(xiàn)成系統(tǒng)。行為樹容易找NavMesh 尋路也成熟但“讓 AI 在運(yùn)行環(huán)境里動(dòng)態(tài)評(píng)估多個(gè)候選點(diǎn)再挑一個(gè)最好的點(diǎn)”這層能力通常要自己搭。不過思路本身不復(fù)雜完全可以在 Unity 6 里從零復(fù)刻出一套輕量 EQS接上 NavMesh、視線檢測、距離評(píng)分和可視化調(diào)試讓 AI 真正學(xué)會(huì)“看環(huán)境選位置”。這篇文章會(huì)給出完整的系統(tǒng)設(shè)計(jì)方案、核心 C# 代碼、候選點(diǎn)生成與測試邏輯、Gizmos 調(diào)試流程、性能優(yōu)化方向以及常見問題排查清單。開發(fā)環(huán)境以 Unity 6 AI Navigation 包為例不需要第三方 AI 插件核心邏輯用純 C# 就能跑通。如果你最近在做 AI 射擊、潛行、恐怖游戲或者正在研究行為樹和尋路之外的“環(huán)境感知決策”這篇可以直接收藏。另外先說明一點(diǎn)本篇文章是結(jié)合相關(guān) Unity 6 復(fù)刻 EQS 教程思路整理的實(shí)現(xiàn)方案不是原視頻或付費(fèi)內(nèi)容的直接搬運(yùn)。復(fù)現(xiàn)過程中的代碼和場景設(shè)計(jì)都屬于通用工程思路但如果你后續(xù)要引用別人的腳本、模型或視頻片段仍然要注意來源授權(quán)。1. 核心能力速覽能力項(xiàng)說明項(xiàng)目類型Unity 6 技術(shù)方案 / EQS 系統(tǒng)復(fù)刻對(duì)應(yīng)引擎Unity 6推薦 6000.0 及以上版本核心依賴UnityEngine.AI、AI Navigation 包ai.navigation主要功能候選點(diǎn)生成、距離測試、視線測試、NavMesh 可達(dá)性測試、掩蔽評(píng)分、AI 目標(biāo)選擇交互方式組件配置 C# 代碼調(diào)用調(diào)試方式Gizmos 可視化候選點(diǎn)與分?jǐn)?shù)、Debug 面板硬件要求純 CPU 計(jì)算不需要 GPU建議 8GB 內(nèi)存以上是否支持批量支持多 Agent 查詢但需要分幀或 Job System 優(yōu)化是否支持 APIUnity 內(nèi)部 C# 接口可直接被行為樹或狀態(tài)機(jī)調(diào)用適合場景射擊 AI 找掩體、潛行 AI 規(guī)劃路線、收集型 AI 選目標(biāo)點(diǎn)這套方案的核心價(jià)值不是做一個(gè)“千人同屏 AI”而是把 Unreal EQS 的設(shè)計(jì)思路搬到 Unity先生成大量候選位置再用可配置的測試項(xiàng)逐個(gè)打分最后選出得分最高的點(diǎn)。后續(xù)加新玩法只需要新增一個(gè) Test 子類不需要改整體框架。2. EQS 原理拆解查詢、生成器、測試與評(píng)分想在 Unity 里復(fù)刻 EQS首先要理解 Unreal 那邊 EQS 的五個(gè)核心組成部分。2.1 Query查詢一個(gè) Query 是完整的查詢配置包含上下文、生成器和測試列表。你可以把它理解成“一次完整決策”的藍(lán)圖。AI 需要一個(gè)目標(biāo)點(diǎn)時(shí)向 EQS 發(fā)起一次查詢系統(tǒng)依次完成候選點(diǎn)生成和評(píng)分。2.2 Context上下文Context 定義查詢的“基準(zhǔn)位置”。常見的有執(zhí)行查詢的 Pawn 自身位置。當(dāng)前追逐目標(biāo)的 Actor 位置。某個(gè)自定義錨點(diǎn)比如玩家上次被發(fā)現(xiàn)的位置。多個(gè)目標(biāo)的平均位置或最近位置。在 Unity 實(shí)現(xiàn)中我會(huì)用一個(gè)輕量的EQQueryContext類來保存這些數(shù)據(jù)。2.3 Generator生成器生成器負(fù)責(zé)產(chǎn)生候選點(diǎn)或候選 Actor。Unreal 常見類型包括同心圓生成器圍繞基準(zhǔn)點(diǎn)生成一圈圈均勻分布的點(diǎn)。格柵生成器在一定范圍內(nèi)生成網(wǎng)格狀點(diǎn)。可點(diǎn)擊點(diǎn)生成器直接收集場景中的相關(guān) Actor。候選點(diǎn)的數(shù)量直接決定查詢開銷所以生成器通常要能配置半徑、點(diǎn)數(shù)和分布密度。2.4 Test測試每個(gè)候選點(diǎn)都要經(jīng)過一個(gè)或多個(gè)測試。測試有兩種模式Filter 模式不滿足條件直接淘汰比如“候選點(diǎn)必須可達(dá)”。Scorer 模式按結(jié)果打分比如“離目標(biāo)越近分?jǐn)?shù)越高”。Unreal 里面常見的測試有距離測試、視線測試、NavMesh 可達(dá)性測試、掩蔽測試、自熱測試等。復(fù)刻到 Unity 時(shí)我會(huì)把測試設(shè)計(jì)成可繼承的抽象類每一個(gè)測試只做一件事。2.5 Score評(píng)分多個(gè)測試的分?jǐn)?shù)乘上各自權(quán)重后累加得到候選點(diǎn)的最終得分。分?jǐn)?shù)越高越優(yōu)。為了調(diào)試方便每個(gè)測試最好把輸出歸一化到 0 到 1這樣權(quán)重才有對(duì)比意義。整體執(zhí)行流程可以概括為獲取查詢上下文包括查詢者位置、目標(biāo)位置等。生成器根據(jù)上下文生成候選點(diǎn)列表。對(duì)每個(gè)候選點(diǎn)依次運(yùn)行測試列表。Filter 測試不通過則直接排除該點(diǎn)。Scorer 測試得到 0 到 1 分乘權(quán)重后累加。對(duì)所有候選點(diǎn)按分?jǐn)?shù)降序排序返回最高分點(diǎn)或前 N 個(gè)點(diǎn)。3. Unity 6 本地部署環(huán)境準(zhǔn)備Unity 6 中接入這套 EQS 系統(tǒng)不需要額外安裝復(fù)雜插件但環(huán)境準(zhǔn)備要做扎實(shí)。3.1 安裝 Unity 6從 Unity Hub 安裝 Unity 6。一般來說使用 6000.0 及以上版本穩(wěn)定性足夠。安裝時(shí)建議勾選 Windows Build Support 或目標(biāo)平臺(tái)支持方便后續(xù)打包測試。3.2 安裝 AI Navigation 包后續(xù)章節(jié)里的 NavMesh 可達(dá)性測試依賴 AI Navigation 包。打開 Package ManagerWindow - Package Manager - Unity Registry - AI Navigation - Install安裝完成后場景中會(huì)多出NavMeshSurface相關(guān)組件用來烘焙 NavMesh。3.3 搭建測試場景建議創(chuàng)建一個(gè)單獨(dú)場景來驗(yàn)證 EQS地面一個(gè) Plane 或 Cube 拉伸成地面。墻體幾個(gè) Cube 作為障礙物給它們單獨(dú)設(shè)置 Layer比如Obstacle。AI 角色一個(gè) Capsule掛NavMeshAgent組件作為查詢發(fā)起者。目標(biāo)對(duì)象一個(gè) Sphere代表玩家或敵人作為 AI 要評(píng)估的目標(biāo)位置。3.4 烘焙 NavMesh使用 AI Navigation 包時(shí)可以通過NavMeshSurface組件烘焙在地面對(duì)象上添加NavMeshSurface組件。將墻體和障礙物設(shè)為靜態(tài)導(dǎo)航阻擋物。點(diǎn)擊Bake按鈕生成 NavMesh。烘焙完成后進(jìn)入 Play ModeNavMeshAgent才能正確計(jì)算路徑。3.5 推薦目錄結(jié)構(gòu)建議把代碼按模塊分離方便后續(xù)擴(kuò)展。Assets/Scripts/EQS/ EQEnvironmentQuery.cs EQQueryContext.cs EQItemGeneratorBase.cs EQGenerator_RadialPoints.cs EQTestBase.cs EQTest_Distance.cs EQTest_LineOfSight.cs EQTest_NavMeshReachable.cs EQTest_Cover.cs Assets/Scripts/Demo/ EQAgent.cs4. 復(fù)刻 EQS 的 Unity 系統(tǒng)設(shè)計(jì)在寫代碼之前先把類設(shè)計(jì)說清楚。整體設(shè)計(jì)目標(biāo)是“一個(gè)可配置的查詢?nèi)肟? 一組可插拔的測試項(xiàng)”這樣不需要后續(xù)改動(dòng)查詢主邏輯。4.1 核心類職責(zé)類/接口職責(zé)EQQueryContext保存查詢者位置、目標(biāo)位置、查詢者 TransformEQItemGeneratorBase抽象生成器子類決定候選點(diǎn)如何分布EQGenerator_RadialPoints在圓形范圍內(nèi)生成均勻候選點(diǎn)EQTestBase抽象測試子類決定如何計(jì)算分?jǐn)?shù)或過濾EQTest_Distance距離測試可設(shè)置最近/最遠(yuǎn)距離和偏好方向EQTest_LineOfSight視線測試從查詢者到候選點(diǎn)是否可見EQTest_NavMeshReachable可達(dá)性測試候選點(diǎn)是否在 NavMesh 上有可達(dá)路徑EQTest_Cover簡化掩體測試候選點(diǎn)對(duì)目標(biāo)是否形成遮擋EQEnvironmentQuery查詢?nèi)肟谪?fù)責(zé)生成候選點(diǎn)并匯總評(píng)分EQAgent演示組件控制 AI 定期執(zhí)行查詢并移動(dòng)4.2 執(zhí)行流程設(shè)計(jì)在 Unity 中一次完整查詢可以拆成五個(gè)階段調(diào)用RunQuery(querier, targetPos)創(chuàng)建上下文。調(diào)用生成器的Generate方法得到候選點(diǎn)列表。遍歷候選點(diǎn)依次執(zhí)行所有測試。測試結(jié)果為 Fail 且模式為 Filter 時(shí)直接丟棄該點(diǎn)。測試結(jié)果為 Scorer 時(shí)累加加權(quán)分?jǐn)?shù)最后選出最高分。這個(gè)流程的核心特點(diǎn)是“每個(gè)測試只負(fù)責(zé)一個(gè)維度”后續(xù)加新的評(píng)分邏輯不會(huì)污染主流程。5. 核心代碼實(shí)現(xiàn)下面進(jìn)入代碼部分。我按時(shí)間線實(shí)現(xiàn)一個(gè)最小可運(yùn)行的 EQS圓形生成器、距離測試、視線測試、NavMesh 可達(dá)性測試、匯總查詢?nèi)肟谧詈蠼右粋€(gè)移動(dòng) Demo Agent。5.1 查詢上下文using UnityEngine; namespace EQS.Core { public class EQQueryContext { public Transform Querier; public Vector3 QuerierPosition; public Vector3 TargetPosition; } }5.2 生成器抽象類與圓形生成器using System.Collections.Generic; using UnityEngine; namespace EQS.Core { public abstract class EQItemGeneratorBase { public abstract ListVector3 Generate(Vector3 center, Quaternion orientation); } public class EQGenerator_RadialPoints : EQItemGeneratorBase { public int Count 16; public float Radius 10f; public override ListVector3 Generate(Vector3 center, Quaternion orientation) { ListVector3 points new ListVector3(); for (int i 0; i Count; i) { float angle (360f / Count) * i * Mathf.Deg2Rad; Vector3 dir new Vector3(Mathf.Cos(angle), 0f, Mathf.Sin(angle)); points.Add(center dir * Radius); } return points; } } }這個(gè)生成器適合快速驗(yàn)證。實(shí)際項(xiàng)目中可以繼續(xù)擴(kuò)展格柵生成器、沿路徑生成器、Actor 收集生成器。5.3 測試基類namespace EQS.Core { public enum EQTestMode { Filter, Scorer } public abstract class EQTestBase { public EQTestMode Mode EQTestMode.Scorer; public float Weight 1f; public abstract bool Run(Vector3 candidate, EQQueryContext ctx, out float score); } }5.4 距離測試using UnityEngine; namespace EQS.Tests { public class EQTest_Distance : EQTestBase { public float MinDistance 0f; public float MaxDistance 20f; public bool PreferCloser true; public override bool Run(Vector3 candidate, EQQueryContext ctx, out float score) { float dist Vector3.Distance(candidate, ctx.TargetPosition); if (dist MinDistance || dist MaxDistance) { score 0f; return false; } float t Mathf.InverseLerp(0f, MaxDistance, dist); score Mathf.Clamp01(PreferCloser ? 1f - t : t); return true; } } }這個(gè)測試的MinDistance和MaxDistance可以直接理解為 Filter 邊界但測試仍返回 false讓上層根據(jù) Mode 決定是否丟棄候選點(diǎn)。5.5 視線測試using UnityEngine; namespace EQS.Tests { public class EQTest_LineOfSight : EQTestBase { public LayerMask ObstacleMask; public bool RequireVisible false; public override bool Run(Vector3 candidate, EQQueryContext ctx, out float score) { Vector3 start ctx.QuerierPosition Vector3.up * 1.2f; Vector3 end candidate Vector3.up * 1.2f; bool visible !Physics.Linecast(start, end, ObstacleMask); if (RequireVisible !visible) { score 0f; return false; } score visible ? 1f : 0f; return true; } } }RequireVisible設(shè)置為 true 時(shí)AI 只會(huì)選擇能直接看見的目標(biāo)點(diǎn)設(shè)置為 false 時(shí)AI 會(huì)選擇被遮擋的掩體點(diǎn)。射擊游戲找掩體時(shí)通常更想要“被遮擋”的點(diǎn)。5.6 NavMesh 可達(dá)性測試using UnityEngine; using UnityEngine.AI; namespace EQS.Tests { public class EQTest_NavMeshReachable : EQTestBase { public float SampleDistance 2f; public override bool Run(Vector3 candidate, EQQueryContext ctx, out float score) { if (!NavMesh.SamplePosition(candidate, out NavMeshHit hit, SampleDistance, NavMesh.AllAreas)) { score 0f; return false; } NavMeshPath path new NavMeshPath(); if (NavMesh.CalculatePath(ctx.QuerierPosition, hit.position, NavMesh.AllAreas, path)) { if (path.status NavMeshPathStatus.PathComplete) { score 1f; return true; } } score 0f; return false; } } }這個(gè)測試在候選點(diǎn)數(shù)量多時(shí)會(huì)比較貴后面性能優(yōu)化章節(jié)會(huì)專門說明。5.7 簡化掩體測試掩體測試的思路是從候選點(diǎn)看向目標(biāo)如果中間有障礙物說明這個(gè)候選點(diǎn)對(duì)目標(biāo)形成了遮擋加分。using UnityEngine; namespace EQS.Tests { public class EQTest_Cover : EQTestBase { public LayerMask CoverMask; public override bool Run(Vector3 candidate, EQQueryContext ctx, out float score) { Vector3 fromCandidate candidate Vector3.up * 1.2f; Vector3 toTarget ctx.TargetPosition Vector3.up * 1.2f; bool occluded Physics.Linecast(fromCandidate, toTarget, CoverMask); score occluded ? 1f : 0f; return true; } } }和EQTest_LineOfSight的區(qū)別是這里是“從候選點(diǎn)看向目標(biāo)”用于判斷掩體效果視線測試是“從 AI 當(dāng)前位置看向候選點(diǎn)”用于判斷路徑上是否可見。5.8 EQS 查詢?nèi)肟趗sing System.Collections.Generic; using UnityEngine; namespace EQS.Core { public class EQEnvironmentQuery : MonoBehaviour { public EQItemGeneratorBase Generator; public ListEQTestBase Tests new ListEQTestBase(); [Header(Debug)] public bool DrawPoints true; public bool DrawBestPoint true; private EQQueryContext _ctx new EQQueryContext(); public EQResult RunQuery(Transform querier, Vector3 targetPos) { _ctx.Querier querier; _ctx.QuerierPosition querier.position; _ctx.TargetPosition targetPos; ListVector3 candidates Generator.Generate(querier.position, querier.rotation); EQResult best null; foreach (Vector3 point in candidates) { EQResult result EvaluatePoint(point, _ctx); if (result.Passed (best null || result.Score best.Score)) { best result; } } return best; } private EQResult EvaluatePoint(Vector3 point, EQQueryContext ctx) { EQResult result new EQResult(); result.Point point; result.Passed true; result.Score 0f; foreach (EQTestBase test in Tests) { if (test null) continue; bool ok test.Run(point, ctx, out float score); if (!ok) { if (test.Mode EQTestMode.Filter) { result.Passed false; result.RejectReasons.Add(test.GetType().Name); result.Score 0f; return result; } score 0f; } result.Score Mathf.Clamp01(score) * test.Weight; } return result; } } }對(duì)應(yīng)的結(jié)果類using System.Collections.Generic; using UnityEngine; namespace EQS.Core { public class EQResult { public Vector3 Point; public float Score; public bool Passed true; public Liststring RejectReasons new Liststring(); } }5.9 Demo AI Agent最后寫一個(gè)演示組件讓 AI 每隔一段時(shí)間執(zhí)行一次查詢?nèi)缓笞叩阶罡叻值狞c(diǎn)。using UnityEngine; using UnityEngine.AI; using EQS.Core; namespace EQS.Demo { public class EQAgent : MonoBehaviour { public EQEnvironmentQuery EQS; public NavMeshAgent Agent; public Transform Target; public float QueryInterval 1f; private float _lastTime -999f; void Update() { if (EQS null || Agent null || Target null) return; if (Time.time - _lastTime QueryInterval) return; _lastTime Time.time; EQResult best EQS.RunQuery(transform, Target.position); if (best ! null best.Passed) { Agent.SetDestination(best.Point); } } } }這個(gè)QueryInterval很重要后續(xù)優(yōu)化時(shí)會(huì)反復(fù)提到。6. 可視化調(diào)試與功能測試EQS 這種系統(tǒng)最大的問題是“黑盒”分?jǐn)?shù)不知道怎么來的。所以可視化調(diào)試是這套系統(tǒng)能不能用起來的關(guān)鍵。6.1 Gizmos 繪制候選點(diǎn)在EQEnvironmentQuery中添加 Gizmos 繪制邏輯private void OnDrawGizmos() { if (!Application.isPlaying) return; if (Generator null) return; ListVector3 candidates Generator.Generate( transform.position, transform.rotation ); foreach (Vector3 point in candidates) { Vector3 center point Vector3.up * 0.5f; float d Vector3.Distance(center, _ctx.TargetPosition); Color color Color.Lerp(Color.green, Color.red, Mathf.Clamp01(d / 10f)); Gizmos.color color; Gizmos.DrawWireSphere(center, 0.25f); } }這個(gè)方案比較粗糙正式項(xiàng)目里最好把候選點(diǎn)、最終選擇點(diǎn)、各測試分?jǐn)?shù)存到調(diào)試列表里然后逐項(xiàng)繪制。更實(shí)用的做法是在EQAgent中把best結(jié)果緩存起來持續(xù)繪制選中點(diǎn)private EQResult _lastBest; void Update() { // ... 省略查詢邏輯 _lastBest EQS.RunQuery(transform, Target.position); } private void OnDrawGizmos() { if (_lastBest null || !_lastBest.Passed) return; Gizmos.color Color.cyan; Gizmos.DrawSphere(_lastBest.Point Vector3.up * 0.5f, 0.4f); }6.2 場景搭建步驟建議按下面的順序驗(yàn)證創(chuàng)建地面、墻體、AI Capsule、Target Sphere。給 AI 添加NavMeshAgent和EQAgent組件。給場景中的動(dòng)態(tài)對(duì)象添加EQEnvironmentQuery組件。在 Inspector 中指定生成器設(shè)置Count 16、Radius 8。添加一個(gè)EQTest_Distance設(shè)置MaxDistance 20PreferCloser true。添加一個(gè)EQTest_NavMeshReachable讓它以 Filter 模式運(yùn)行。點(diǎn)擊 Play觀察 AI 是否移動(dòng)到離目標(biāo)最近的可達(dá)點(diǎn)。然后再逐步添加視線測試和掩體測試觀察候選點(diǎn)顏色和 AI 行為變化。6.3 功能驗(yàn)證用例測試場景輸入配置預(yù)期結(jié)果空?qǐng)龅卣易罱c(diǎn)16 點(diǎn)圓形生成器距離測試AI 走向離目標(biāo)最近且可達(dá)的點(diǎn)一堵墻擋路加視線測試RequireVisiblefalseAI 可能選擇墻后掩體點(diǎn)墻后點(diǎn)不可達(dá)加 NavMesh 可達(dá)性 Filter不可達(dá)點(diǎn)被過濾AI 選最近可達(dá)點(diǎn)多個(gè)掩體對(duì)比距離 視線 掩體測試AI 選擇遮擋更充分且距離合理的點(diǎn)無有效點(diǎn)所有點(diǎn)都被 Filter 淘汰best為 nullAI 停在原地通過這組用例可以判斷系統(tǒng)是否真正具備“環(huán)境感知決策”能力。7. 功能擴(kuò)展API 與批量任務(wù)思路EQS 本質(zhì)上是 C# 內(nèi)部的邏輯模塊不是 Web 服務(wù)所以不需要 HTTP API。但如果你做的是服務(wù)器驅(qū)動(dòng)的 AI 決策或者想讓策劃通過配置驅(qū)動(dòng) AI可以把查詢封裝成可序列化配置。7.1 配置驅(qū)動(dòng)思路可以用ScriptableObject保存查詢配置[CreateAssetMenu(fileName EQSQueryConfig, menuName AI/EQS Query Config)] public class EQSQueryConfig : ScriptableObject { public EQItemGeneratorBase Generator; public ListEQTestBase Tests new ListEQTestBase(); }這樣策劃可以創(chuàng)建多套查詢配置比如“找掩體”“找巡邏點(diǎn)”“找攻擊位置”運(yùn)行時(shí)按狀態(tài)切換。7.2 多 Agent 批量查詢多 Agent 同時(shí)調(diào)用RunQuery會(huì)出現(xiàn)明顯的 CPU 峰值因?yàn)槊總€(gè) Agent 都要生成候選點(diǎn)、計(jì)算路徑。優(yōu)化思路有兩個(gè)方向時(shí)間分片每個(gè) Agent 錯(cuò)開查詢時(shí)間避免同幀計(jì)算??臻g分塊同一個(gè)區(qū)域內(nèi)多個(gè) Agent 共用一份查詢結(jié)果而不是各算各的。下面是一個(gè)簡單的錯(cuò)開查詢示例public class StaggeredQueryAgent : MonoBehaviour { public EQEnvironmentQuery EQS; public float Offset 0f; public float Interval 1f; void Update() { float t Time.time Offset; if (t % Interval Time.deltaTime) { // 執(zhí)行查詢 } } }通過給不同 Agent 設(shè)置不同Offset可以顯著降低同幀計(jì)算壓力。7.3 RaycastCommand 批量視線測試視線測試在候選點(diǎn)多的時(shí)候會(huì)產(chǎn)生大量 Raycast。Unity 提供了RaycastCommand做批量射線檢測配合 Job System 可以并行執(zhí)行。下面是一個(gè)簡化示例using Unity.Collections; using UnityEngine; public static class LineOfSightBatcher { public static bool[] BatchCheck(int count, Vector3 start, Vector3[] ends, LayerMask mask) { var commands new NativeArrayRaycastCommand(count, Allocator.TempJob); var results new NativeArrayRaycastHit(count, Allocator.TempJob); for (int i 0; i count; i) { commands[i] new RaycastCommand( start, (ends[i] - start).normalized, Vector3.Distance(start, ends[i]), mask ); } var handle RaycastCommand.ScheduleBatch(commands, results, 32, default); handle.Complete(); bool[] visible new bool[count]; for (int i 0; i count; i) { visible[i] results[i].collider null; } commands.Dispose(); results.Dispose(); return visible; } }這個(gè)示例展示了批量思路實(shí)際接入時(shí)要注意RaycastCommand的初始位置不能位于碰撞體內(nèi)部否則會(huì)產(chǎn)生誤判。7.4 NavMeshPath 緩存與復(fù)用NavMesh.CalculatePath是 EQS 里最貴的操作之一。候選點(diǎn)越多路徑計(jì)算越頻繁。工程化建議只對(duì)通過距離和視線測試的點(diǎn)做可達(dá)性測試。把NavMeshPath對(duì)象緩存復(fù)用避免每次 new 一個(gè)。同一幀內(nèi)相同起始點(diǎn)和終點(diǎn)不重復(fù)計(jì)算路徑。8. 資源占用與性能觀察EQS 屬于 CPU 密集邏輯它的瓶頸不是 GPU而是候選點(diǎn)數(shù)、測試復(fù)雜度和查詢頻率。8.1 性能瓶頸分析假設(shè)一次查詢有 32 個(gè)候選點(diǎn)、3 個(gè)測試那么單次查詢最多執(zhí)行 96 次測試。如果其中包含可達(dá)性測試最壞情況是 32 次 NavMesh 路徑搜索這已經(jīng)會(huì)帶來幾毫秒的開銷。所以不要讓 AI 每幀查詢。一般射擊游戲 AI 的決策頻率是 1 到 4 Hz也就是每 0.25 到 1 秒查詢一次完全夠用。8.2 如何觀察 CPU 峰值Unity Profiler 是主要工具Window - Analysis - Profiler重點(diǎn)觀察PlayerLoop下的邏輯開銷如果單幀耗時(shí)突然變高優(yōu)先查看是否有多個(gè) Agent 在同一幀執(zhí)行路徑計(jì)算。8.3 降低開銷的建議手段說明降低候選點(diǎn)數(shù)先用 16 到 32 個(gè)點(diǎn)驗(yàn)證效果不夠再加降低查詢頻率0.5 到 1 秒一次通常足夠Filter 前置先做便宜的 Filter 測試再做貴的路徑測試調(diào)整 NavMesh SampleDistance過大的采樣距離會(huì)放寬候選點(diǎn)范圍使用 Job System將視線測試批量并行化多 Agent 錯(cuò)幀給每個(gè) Agent 設(shè)置隨機(jī)起始偏移8.4 內(nèi)存與顯存這套方案是純 CPU 計(jì)算基本不占用顯存。內(nèi)存方面主要開銷來自測試過程中產(chǎn)生的NavMeshPath和候選點(diǎn)列表。工程上建議復(fù)用這些對(duì)象不要在高頻查詢時(shí)反復(fù) new。9. 常見問題與排查方法問題現(xiàn)象可能原因排查方式解決方案候選點(diǎn)沒有生成生成器未配置或 Count 為 0檢查 Inspector 中 Generator 引用和 Count 值設(shè)置有效生成器并讓 Count 0AI 永遠(yuǎn)停在原地所有候選點(diǎn)被 Filter 淘汰開啟 Gizmos 看候選點(diǎn)顏色調(diào)整測試閾值或關(guān)閉 Filter 模式可達(dá)性測試全失敗NavMesh 未烘焙查看 Navigation 窗口是否已有數(shù)據(jù)重新 Bake NavMesh視線測試結(jié)果不符合預(yù)期LayerMask 未包含墻體檢查 ObstacleMask 配置讓墻體使用單獨(dú) Layer游戲運(yùn)行時(shí)卡頓明顯每幀查詢且計(jì)算路徑打開 Profiler 定位耗時(shí)增加 QueryInterval減少候選點(diǎn)數(shù)Gizmos 不顯示場景視圖 Gizmos 被關(guān)閉檢查 Scene 右上角 Gizmos 開關(guān)打開 Gizmos 并確認(rèn)繪制代碼存在多個(gè) Agent 同幀卡頓缺乏錯(cuò)幀邏輯查看同時(shí)發(fā)起查詢的 Agent 數(shù)量使用偏移量錯(cuò)開查詢時(shí)間分?jǐn)?shù)結(jié)果不穩(wěn)定測試分?jǐn)?shù)未歸一化輸出各測試得分在匯總前對(duì) score 做 Clamp01Linecast 起點(diǎn)在物體內(nèi)部起點(diǎn)高度太低或偏移不夠調(diào)試時(shí)繪制射線把起點(diǎn)抬高并添加偏移候選點(diǎn)集中在 NavMesh 外生成器只按圓分布未貼地采樣觀察候選點(diǎn) Y 軸高度使用 NavMesh.SamplePosition 修正高度其中最容易踩的坑是“視線測試結(jié)果全反”。原因很常見把RequireVisible配置成 true卻期待 AI 找掩體。實(shí)際上找掩體時(shí)應(yīng)該用掩體測試而不是視線測試。建議把每個(gè)測試的作用寫在 Inspector 的 Tooltip 里避免策劃配錯(cuò)。10. 邊界與合規(guī)使用提醒這篇文章是基于通用工程思路的復(fù)現(xiàn)整理不是直接照搬原視頻或付費(fèi)內(nèi)容。如果你學(xué)習(xí)某個(gè)教程后做項(xiàng)目請(qǐng)遵守下面幾條邊界不要直接復(fù)制教程中的付費(fèi)腳本、美術(shù)資源和關(guān)卡內(nèi)容。如果引用了開源實(shí)現(xiàn)保留原作者署名和許可證聲明。使用 AI 生成素材時(shí)確認(rèn)素材版權(quán)和商業(yè)使用權(quán)限。如果是團(tuán)隊(duì)項(xiàng)目涉及玩家數(shù)據(jù)、網(wǎng)絡(luò)同步等功能需要遵守隱私和數(shù)據(jù)合規(guī)要求。正式發(fā)布前對(duì) EQS 生成的 AI 行為做充分測試避免出現(xiàn)卡墻、穿墻或無限循環(huán)等異常。復(fù)刻 EQS 這類系統(tǒng)價(jià)值在于把“決策邏輯”從具體玩法中抽離出來。它本身不涉及敏感內(nèi)容但如果 AI 行為應(yīng)用到商業(yè)游戲仍然需要做完整的功能與性能驗(yàn)證。11. 最佳實(shí)踐與后續(xù)擴(kuò)展如果你決定在項(xiàng)目里正式落地這套 EQS建議按下面的次序推進(jìn)。11.1 先跑通最小閉環(huán)不急著做掩體、視線、Job System。先讓 AI 能通過“圓形生成器 距離測試 可達(dá)性測試”選出一個(gè)點(diǎn)并走過去。這個(gè)閉環(huán)跑通后后面所有測試項(xiàng)都是增量工作。11.2 每個(gè)測試單獨(dú)開關(guān)在EQEnvironmentQuery里為每個(gè)測試增加enable字段或者使用[SerializeReference]讓 Inspector 支持動(dòng)態(tài)增刪測試項(xiàng)。調(diào)試時(shí)只開一個(gè)測試更容易定位問題。11.3 把得分結(jié)構(gòu)輸出到 UI更進(jìn)階的做法是在場景里用OnGUI或 TextMeshPro 輸出每個(gè)候選點(diǎn)的得分明細(xì)void OnGUI() { if (_lastResult null) return; GUILayout.Label($Best Point: {_lastResult.Point}); GUILayout.Label($Score: {_lastResult.Score}); }這樣策劃不用看代碼也能理解 AI 為什么選這個(gè)位置。11.4 擴(kuò)展方向這套框架可以繼續(xù)擴(kuò)展成更完整的 AI 決策層接入行為樹把查詢結(jié)果寫進(jìn)黑板變量行為樹中的MoveTo任務(wù)直接讀取目標(biāo)點(diǎn)。增加 Actor 生成器直接收集場景中的敵人或掉落物做收集型 AI。增加“方向偏好”測試讓 AI 偏向玩家背后方向?qū)崿F(xiàn)繞后效果。增加“熱度”測試通過體素?zé)岫葓鲎?AI 避開危險(xiǎn)區(qū)域。生成器支持組合圓形生成器生成后經(jīng)過 NavMesh 采樣修正高度再做一次附近掩體投影。服務(wù)端 AI 決策如果做 MOBA 或俯視角射擊可以將查詢邏輯放在服務(wù)器使用純 C# 計(jì)算不依賴 Unity 物理。12. 總結(jié)與下一步這次整理的 Unity 6 EQS 復(fù)刻方案核心思路是“生成候選點(diǎn) - 多維度測試 - 加權(quán)打分 - 輸出最優(yōu)解”。它不是一個(gè)具體插件而是一套可插拔、可調(diào)試、可擴(kuò)展的 AI 環(huán)境決策框架。復(fù)制代碼跑通 Demo 之后你會(huì)發(fā)現(xiàn) Unity 里做“AI 找掩體”“AI 選巡邏點(diǎn)”“AI 繞后”這類需求都比直接寫死邏輯要穩(wěn)得多。接下來建議先做兩件事把最小閉環(huán)跑通驗(yàn)證候選點(diǎn)生成和得分選擇。配置 Gizmos 調(diào)試把每個(gè)候選點(diǎn)的分?jǐn)?shù)可視化。如果每一步都能看到“為什么選這個(gè)點(diǎn)”這套 EQS 就算真正落地了。這個(gè)方向后面還能擴(kuò)展很多實(shí)用玩法建議收藏備用準(zhǔn)備做 AI 決策系統(tǒng)的時(shí)候直接照著搭。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
黄片aaaaa一区| 国产精品久久久久无码A√| 久久久久久久久九九久孕交| 亚洲囯产精品女人久久久| 天美传媒AV国产在线| 91影库| 一二三四日本视频高清| 亚洲图片色图欧美另类| 色香在线| 天天射天天| 十八禁视频网站| 免费国产视频| 欧美日韩一干二干| 99热精品在线| 欧美性爱精品七区| 亚洲欧美一区二区不卡视频播放| 婷婷五月天伊人| 神马久久久久久久| 91美女在线视频| 岛国色情视频在线观看| 草草草草视频| 天美传媒av一区二区| 天天插天天操| 国产成年女人免费视频播放a| 欧美日韩青操| 中文字幕人妻色偷偷久久皮| 377p欧洲日本亚洲大胆| 久热这里只有精品9| 中文字幕免费看大片| 黄色工厂这里只有精品| 天天舔九色婷婷| 在线播放中文字幕| 天天看天天在线精品| 玖玖综合视频| 97欧美色综合| 97综合日韩| 成人一级性爱| 日本一级特级毛片视频| sewuyueav| 在线亚洲丝袜视频网站| 大稥蕉免费视频这里只有精品| 日本在线观看网址| 在线观看啊啊啊啊啊| 福利在线观看一区二区| 欧美亚洲成人在线一区二区三区| 99无码视频| 伊人网青青| 亚洲97精品| 久久久久ab| 激情久久久| 小视频国产| 伊人91| 老鸭窝成人| 91美女视频在线| 欧美性猛交美女自慰91| 日本在线一二 | 亚洲男人天堂AV| 蜜桃久久久久久久| 黄色AV影视| 色色五月婷| 涩综合导航| 中文字幕精品免费一区二区| 九九亚洲| 久久久久亚洲三级电影| 亚洲色欲天天天堂色欲网女| V A在线| 91丨国产丨白浆秘 洗澡动漫| 亚洲97精品| 欧美色97| 91综合天天看| 狠狠入| 欧美综色欧| 调教熟妇 久久久久久| 伊人女女资源在线观看| 97色色色| 午夜福利久久久噜久噜久久综合| 日本蜜桃| 九九九九久久久久| 亚洲欧洲成人在线电影| 岛国AB视频| 三级激情网站| 日韩无码黄色片| 精品亚洲国产成人精品| 五月天婷婷影院| 熟妇熟女一区二三区| 97露脸精品丝袜| 成人精品视频| 国产偷拍网站| 欧美日韩国产色图在线| 狠狠操一区二区| 日日骚精品视频| 蜜桃午夜视频一区二区| 精…码一二三区| 亚州综合| 欧美性爱18观看| 性夜影院爽黄A爽免费动漫| 欧美日韩 强奸乱伦| 一二三区在线| 亚洲综合图片在线| 免费国产视频| 免费A V在线| 精品久久一区二区三区四区五区| 美女尤物福利视频| 蜜汁欧美| 首页中文字幕中文字幕免费| 五月丁香久久| 色婷婷aV一区二区三区麻豆综合| 一区=区三区视频| 老熟妇一区二区三区| 亚洲性图91| 啪啪自拍九九综合| 精品国产一区二区三区在线播出| 手机不卡视频不卡在线一二三区| 国产吹潮女在线观看| 天天激情综合站| 国产精品天美传媒| 亚洲a色| 亚洲天堂7777| 好吊色在线观看| AV女资源| 亚洲一卡二卡在线免费| 人妻精品视频一区二区| 亚洲免费日韩在线一区二区| 精品国产乱码久久| 亚洲丝袜B诱惑| 91亚洲人| 人妻在线臀日韩| 久久久人妻| 一区二区日韩欧美久久| 九九热精品视频六| 99热9| 天天射夜夜| 国产精品视频麻豆入口| 91超碰碰在线| 夜嗨影院| 日韩欧美中文字亚洲慕| 国产女性无套 免费观看| 精品丰满熟妇人妻一区| 五月天激情影院| 亚洲日韩乱码中文无码蜜桃臀网站 | 秋霞鲁丝午夜无码一区二区三| 2024年最新色情网站在线观看 | 啪啪资源网| 超碰视97中文| 国产精品制服丝袜清纯唯美| 欧美韩国你懂得在线| 欧洲黄色网| 色吧综合网| 中国黑人三级片网站上区| 操日韩第| 国产三区免费在线观看| 久久精品小视频| 午夜性| #NAME?| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 日本 情色 1区2区3区| 日本黄色天堂| 热思思免费视频| 亚洲图片偷拍视频区| 九九色逼| 中文字幕AV片| 国产亚洲在线| 欧美成人精品一区二区男人蜜臀| 91成人久久 | 亚洲一区二区三区春色| av天天在线观看| 大香蕉日韩欧美| 91亚洲不卡一区| 97超碰国产亚洲精品资源| 男女激烈网站最新| 久久免费精品96| 天天操夜夜操| 一卡二卡在线播放| 色综合久| 啊啊啊不要好爽日韩无码一区| 丰满人妻一区二区三区性色| 96麻豆精品一区二区三区| 精品少妇一区二区三区免费观看| 在线视频免费播放一区| 韩日性爱av| 91香蕉国产尤物视频| 日本不卡免费二区| 激情视频一二三| 日韩熟女精品无码专区一区二区| 亚洲有码 视频一区| 亚洲欧美一区二区三区一猛片| 人人干人人操人人爱| 超碰九7免费| 久久久久成人网| 媚薬在线视频麻豆| 欧美美女在线高潮999| 国产熟女少妇一区| 国内外色色色色色成人视频| 丁香激情网| 翔田千里av一区二区三区| 午夜男女爽爽爽影院视频| 91殴美| 亚洲色图欧美色18直播在线| 中文字幕乱妇免费视频| 狠狠爱夜夜| 久久午夜神马| 东京热91| 久操国产在线| 美女久久久久久久久久久| 91N综合网| 亚洲精品蜜桃久久久久久久| 亚欧美综合| 熟女91网| 超碰1024久久| 日韩一级二级三级免费看完整版国语版 | 热久久无毒不卡| 99re6国产精品99re| 亚洲欧美日韩电影网站一区| 激情四射婷婷四五月天| 黄色网址久久精品欧美喷水| 黄页大片在线观看| 狠狠狠一区二区三区| 欧美1727免费观看视频| 精品国产乱码久久久久久久久1| 天天插天天射| 3p国产色噜噜一区| 国产精品99精品视频网站| 四虎国产成人精品免费一女五男| 黄色一区二区秘书性感| 久久久成人免费av电影| 日韩av电影网站| 亚洲免费成人精品电影| 国产精品露脸在线观看| 色偷偷综合91久久噜噜| 67194无码不卡| 黄色av片三级三级三级免费看| 97欧美资源| 久久一二三四不卡| 99色综合| 91人妻熟女| 色欲无码人妻日韩欧美精品| 人妻碰碰碰碰碰碰| 精品丰满熟妇人妻一区| 精品妇操一区二区三区| 国产精品一区在线播放| 亚洲国产综合久久久性感熟妇| 视频黄色国产一级| 日本孕妇一区二区视频操逼免费看 | 97欧美视频| 91久热| 欧美 亚洲 在线| 久久成年片色大黄全免费网站| 色婷婷六月丁香七月婷婷| 99精品视频在线观看免费| 亚洲国产一级精品毛一级精品看免费视频 | 另类小说综合网| 午夜无码精品免费看性色| 日本在线激情一区二区三区 | 日韩淫色网| 今日头条成人一区二区三区四虎精品| 久久超碰av在线| 96国产精品| 欧美在线天堂| 操逼免费视频无码国产| 国产欧美一区激情交| 成人自拍三级在线观看| 91色交| 96国产精品| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 少妇一级婬片免费放一级a性色.| 欧美亚洲丝袜人妻制服中文99| 日本精品人妻少妇一区二区| 国产91丝袜 在线播放| 国内毛片热久久思思热| 97亚洲性爱| 蜜臀av在线播放一区二区三区| 婷婷中文网| 国产九九九九九九九九| 99色网| 韩三级a视频在线观看| 麻豆啪啪啪视频| 久久免费老司机精品| 欧美性生活内射| 91精品导航| 欧美后入| 一区二区三区欧美激情| 久久熟妇五十路一区| 久久精品女同亚洲女同13| 欧美精品宗合| 国产精品色色| 超碰在线综合97| 欧美97av| 91亚洲欧美综合高清在线| 欧美91视频| 丁香五月综合| 国产精品无码在线| 校园春色 男人天堂| 色蜜AV| 蜜乳AV一区二区三区四| 色九九久九九| 91黑丝露脚| 狠狠狠狠狠| 亚洲诱惑| 日韩 国产 欧美自拍| 老女人老91妇女老热女| 伊人9| 欧美肥臀在线| 一及黄久一点| 日韩性色b| 视频国产精品未满十八禁止在线观看| 男人天堂2019亚洲| 91麻豆天美国产欧美高潮| 囯产精品久久久久久久久久梁医生| 欧洲欧美视频一区二区| 日韩啪啪啪啪啪| 97欧美色综合| 国产精品一区二区校花| 性色中出| 女色综合| 亚洲五月丁香花狠狠干一区二区三区 | 欧美熟妇视频| 人妻熟女一区二区三区视频| 日本污ww视频网站| 人妻 制服 日韩 中文 在线| 青青操在线视频| 91午夜无码| AV一二区| 大香蕉中文在线| 亚洲一区二区三区AV无码| 亚洲人成网www| 天天情欲宗合网| 91久久青青草原精品| 国产亚洲精品av一区| 人人考人人摸人人干| 一本道综合色图| 先锋激情∨在线视频播放| 自怕偷自怕亚洲精品| 久久综合久色欧美综合狠狠| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 欧美操人| 亚洲天堂男人在线| 亚洲综合伊人无码久久| 97天天搞在线| 亚洲小说视频| 日韩性爱电影一区| 蜜桃臀一区二区aV| 老司机深夜影院18未满| 97资源站久久| 久久艹逼视频| 亚洲欧美91| 日日夜夜狠狠| 日韩福利电影网| 国产精品三级视频网站| 久久精品老司| 操国产逼| 天天天天天超碰| 伊人网高清| 欧美十八禁在线看| 九热中文字幕| 亚洲精品骚逼| 丝袜剧情| 中韩中文字幕在线观看| 久久久爆乳翘臀一线天伦理视频| 超碰成人人人爽人人爽| 东京太热久久久| 一级AV性爱| 亚洲青色欧美| 91黑人无码激情在线| 精品在线78| 福利操逼| 乱子伦一区二区三区国产精品| 99这里只有精品国产| 天天日老熟妇| 91殴美| 亚洲欧美激情另类色图| 97美日韩视频| 九九热五区| 97精品| 无码一区二区三区四区五区六区七区八区九区十区视频 | 中国黑人三级片网站上区| 人妻一区视频| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 国产伦精品| 天天插天天舔舔天天干| 国产精品农村妇女| 亚洲高潮少妇| 芊芊操逼视频无码| 日本久久久精品电影| 日本午夜操逼| 超碰人人妻| 资源新线在线天堂| 六月丁香五月婷婷| 国内外毛片在线观看| 首页亚洲国产高跟丝袜诱惑视频| 天天看天天日| 国产9区| 国产玖玖| 欧美日韩大香蕉| 操学生天天| 嗯嗯嗯好爽| 亚洲欧洲国产综合av| 中文字幕亚洲欧美在线不卡| 色约约一区=区三区| 精品人妻一区二区三区-国产精品| 日韩AV一区二区三区三州三州| 超碰色中文| wuyechaopeng| 亚洲第一页色网| A级在线视频| 伦激情人妻另类人妻| 日本日皮视频逼| 人人乐大香蕉| 青草视频人妻在线观看| 校园春色宗合网| 伊人久久亚洲色欲综合网站 | 亚洲精品aa久久伊人| 丁香六月天| 天天综合网入口~91| 91久久久久久久| 国产精品伦理| 26uuu国产亚洲综合| 日本色色色视频| 色色色综合网| 无码人妻精品一区二区三区九九 | 婷婷久久综合| 亚洲色图综合网| 97色碰| 免费A V在线播放| 在线中文字幕极品av| 五月天黄色av| 99热国产| 日本熟女不卡视频| 亚洲综合激情五月久久| 夜夜操一区二区| 99re在线| 福利视频一区二区微拍| 五月天激情小说网| 天堂综合| 美女91| 日韩欧美亚洲一区二区三区影院| 久久色一区| 国产一区二区在线看| 亚洲欧美综合| 国产AV无码AV| av操操不卡| 欧姜老司机| 熟女五十路一区二区三| 亚洲最大黄网| 99re99| 肏逼视频日本| 一区二区日韩欧美久久| 欧美天天影院| 五月天久久综合网| 久久久蜜桃一区二区三区| 久欲AV| 国产特级毛片AAAAAA高潮流水 | 欧美 亚洲 另类 综合| 午夜男人的天堂| 国产一级内射无挡观看| 综合 青草 伊久久 影院 综合| surenchaopeng| 性天堂| 色九九九九久| 四虎在线免费视频| 岛国大片在线观看网站入口| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚洲无码视频免费在线观看网址!| 日韩不卡av一二三| 后入式五六区| 操逼操网| 欧美伦乱爱| 久久婷婷苹果| 人人摸人人干人人拍97| 色欧洲97| 日韩精品中文字幕一| 夜草欧美| 中文字幕一区二区视频在线观看| 免费看日本操逼视频| 欧美一二级| 亚洲阿v天堂无码z2018| 欧美熟妇人体| 100啪啪视频大全| 精品国产一区二区久久| 黄色无码高清黄色无码网站| 夜夜操91744565| 高清孕妇孕交 交孕妇| 蜜乳性色无码专日粉嫩骚逼AV| 久草男人天堂| 国产极品美女高潮无套在线观看| 一区二区三区四区久久视1| 人人操人人摸avav| 97日视频| 午夜亚洲国产理论秋霞| 97色色国产视频| 无码人妻精品一区二区三区99不卡| 97日本超碰综合| 亚洲欧美综合图片| 99在线免费视频| 亚洲丝袜少妇在线| 黄片www.| 精产品久久| 色色五月婷| 亚洲黄色AV电影| 欧美另类色图片| 亚洲高清色综合| 青青操青娱乐| 亚洲成人精品在线一区| 超碰久久草| 在线观看色视频| 久久激情视频| 国产小u女在线观看| 美女十八禁| 欧美天天插| 午夜精品久久一区二区| 91夜夜蜜桃臀1区2区3区| 国产精品嫩草久久久久| 伊人在线大香蕉视频久久| 久久久九九网站| 少妇精品久久| yazhousetuoumei| 日本三级一区二区 在线| 另类专区加勒比| 综合久久六月久久婷婷| 啊啊啊啊免费视频| 91人人爽人人爽| 久草精品国产99| 玖玖资源中文字幕制服丝袜| 国产中文字幕在线点播| 亚洲AV色图一区| 91国产精品在线看| 男人天堂黄片| 日本幼女18+| 偷拍欧美激情| 久久久亚洲欧美综合| 熟女熟妇伦久久影院毛片一区二区 | 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 丰满人妻大屁一区二区| 97超碰影音| 亚洲情色婷婷五月天| 精品国产一区二区三区香蕉欧美| 久啪视频| 欧美色图天堂在线| 久久久亚洲Av| 久久精品超碰| 日日黄色三级网站| 亚洲国产无码精品首页久久久| 性色亚洲| 精品妇操一区二区三区| 丝袜狠狠草尤物 91| 亚洲无码一区成人免费午夜| 天堂岛av| 久久社区一区二区三区| 美女久久久久久久久久久| 99久久综合| 色婷网| 级做a爱无码性色永久免费| 欧美综合在线91| 超碰av在线| 国产强奸乱伦xd| 黑人性欧美| 欧美日本天堂| 亚洲.欧美.丝袜.中文.综合| 乱伦1色页| 亚洲电影91| 91久久精品国产| 亚洲最大的综合性av| 亚洲天堂欧美| 自拍第一页| 久插综合| 啊啊啊啊一区| 黄色大香焦1级‘′‘| 久久伊人最新网址视频| 久久久精| 99精彩视频| 欧美日韩另类在线播放| 欧美 亚洲 在线| 亚洲天堂资源| 裸模AV女优| 久久久爆乳翘臀一线天伦理视频| 色综合av男人天堂| 八戒午夜福利理论片| 美欧色综合| 91激情综合| 春色校园综合网| 一区二区 韩日AV| 欧美性爱一级操| 国产一级内射高清视频| 91欧美情色| 国产日韩欧美| 美女淫穴| 97中文超碰| 91站街按摩店老熟女熟女| 四虎国产精品永久地址入口| 国产午夜精品理论片a大结局| 色原狠狠天天天| 亚洲国产一级中文综合久久天堂在线免费观看 | 欧美黄色片在线播放| 2020久久免费视频| 精品久久97| 亚洲骚男同com| 色综合20p| 青娱乐蜜桃臀AV色婷| 天天干一区二区| 色婷网| 18禁超污无遮挡无码免费网| 天天艹天天日| 国产在线视频二区| 亚洲熟妇一,二,三期| 欧美天天干| 极品美女嘿咻| 亚洲欲| 激情视频一二三| 人人澡综合涩| 91肏屄网| 青青草自拍视频在线播放| 五月婷在线| 五月丁香婷婷综合| 婷婷视频网| 国产热RE99久久6国产精品首| 色婷婷九月天天综合| 亚洲美女自拍偷拍视频| 免费在线看黄片av| 少妇色| 91天天| 女性喷水高潮在线观看| 麻豆三极片| 色波多| 99精品国产户外露出| 91香蕉国产尤物视频| 日韩无码人妻| 国产亚洲福利第一页丝袜| 日本操逼视频免费| 91另类| 在线a亚洲视频播放在线| 97超碰碰| 少妇厨房愉情理伦片bd在线观看| 囯产精品久久久久久久久久梁医生 | 欧美黄色片在线播放| 亚洲?V无码专区在线电影| 久草精品国产99| 在线播放成人高清免费视频| 涩综合导航| 亚洲欧洲日韩天堂av| 俄罗斯一区二区视频在线观看| 狠狠中文字幕| 日韩激情啪啪| www.人人cao| 九九色综合| 亚洲综合97中文网| 精品人妻一区二区免费蜜桃| 日韩三级在线观看mp4| 干B| 91热色| 大香蕉伊人75| 啪啪综合网| PMv在线观看| 欧美日韩日产免费网站看| 欧洲欧美视频一区二区| 黄色AAAAAAAAAAA大片| 手机在线播放国产福利| 亚洲乱熟女一区二区三区大香蕉| 五月丁香六月激情| 久久久无码国精品无码三区三区| 欧美大码在线视频| 日本一区二区三区精品| 97精品视频网站| 91原创在线观看| 91夜夜蜜桃臀1区2区3区| 超碰69| 在线中文字幕视频| 91激情| 亚洲中文字幕久久人妻| 午夜天堂啪啪| 欧美日韩国第一区| 男人天堂.AB| 国模不卡一本二本三电影| 精品无码产区一区二| 91美女视频直播| 99久久精品国产系列| 亚洲免费在线探花| 丁香五月天啪啪| 91最新综合| 亚洲九九视频在线观看| 97资源久久| heyZO天然素人无码AⅤ专区| 欧美v亚洲v日韩v最新在线二区| 欧美另类色图片| 亚洲激情天堂网| 大香蕉伊人75| 天天激情综合站| 柠檬AV导航| 少妇同性| 欧美午夜熟妇黑人精品91| 国产精品又黄又猛又粗| 欧美综合第一页| 黄色电影在线播放综合网站| 婷婷久久网| 黑丝91视频| 香蕉免费一区二区三区不读| 91 丝袜在线播放| 人人摸.人人色| 五月天婷婷基地| 青苹果影院男人的天堂| 亚洲美腿丝袜香蕉影视欧美成人| 国产无码精品久久久久久| 久久肏大逼| 啊啊啊啊在线观看网址| 人妻少妇精品久久久久久| 欧美激情性久久久久久| 五月丁香影视| 欧美精品久久| 欧美色网| 婷婷导航| 欧美一区二区三区黄色影视| 99夜夜操| 欧美十八禁网站| 久久久久久中文字幕中文字幕最新| 久久精品人妻一区二区| www.av家庭乱伦| 国产农村一一级特黄毛片| 天天天天天天天天综合| 久草成人| 亚洲一区中文字幕一区| 日韩超碰精品综合| 久久久久久久97| 97国产高清视频在线观看| 国产视频一区二区三区久久亚洲天堂| 欧美伦乱爱| 亚洲欧美综合| 97人人干| 97操综合| 色在线亚洲视频www| 成 人 影视 一区 二区 三区 四区| 干美女人妻| 久久av一级av少妇av高潮| 熟女在线视频| 97欧美日韩| 人人操人人大香蕉| 日韩无码AB| 尹人免费观看视频在线| 久久久艹艹艹| 992视频一区| 成人激情无码在线视频| 曰本熟女视频| 天天噜| 五月丁香| 夜夜做夜夜爽精品视频| 黄色AAAAA欧美| 亚洲狼狼干综合1| 日本一级真人黄色性爱视频| 丁香六月婷婷| av2014 日韩在线中文字幕| 国产精品激情久久久久久久| 一区二区不卡| 无码高清操逼网址| 午夜呻吟欧美| 蜜臀在线视频| 亚洲色图久久成人| 深夜激情| 中文字幕精品资源在线| 好一吊区二区| 在线观看黄色电话| 日韩电影免费网站麻豆视频| 三男一女不戴套的A片| 18精品一区| 啊啊啊好大好深| 97av在线视频| 天天射天天色成人| 国产成人+综合亚洲+天堂| 伊人色综合欧美| 黑人狂躁日本妞一区二区三区| 青青草日本中文字幕| 无码人妻一区二区三区色欲aⅴ | 国内三级自拍小视频在线观看| 少妇人妻激情四射| 日韩Va亚洲va欧美Ⅴa久久| 久日91在线| 日本不卡高清视频| 久久6热精品99视频| 国产h片在线观看视频| 四虎在线免费视频| 国产精品成人无码av无码免费| 精人妻无码一区二区三区伊人直播| 久久亚洲AV无码专区首页| 小骚逼被操的爽不爽| 久久直播国产| com 首页 18岁 禁区 女优 免费 精选 同城 | 欧美亚洲成人在线一区二区三区| 秋霞久久亚洲精品成人| 色九九综合AV| 精品久久久久久中文| 色网在线| 在线v中文字幕一区二区三区| 99热日| 91精品久久久久久77777| 啊啊啊啊免费视频| 国产女人高潮视频| 日产操逼| 黄呦呦在线| 亚洲伊人a线观看视频| 天天超级碰碰碰| 色综合尤物| 伊色久人大在线| 久久色人体| 国产兽交视频在线播放| 最新av在线| 91精品伊人久久久大香线蕉91| 欧美在线|亚洲| 五月婷婷色| 偷拍精品一区二区三区| 精品97久久综合| 婷婷激情五月天小说网| 欧美色爱综合| 97色伦欧美| 九九热re99re6在线精品| 五月黑AⅤ| 性无码专区2020| 综合天天网| 精品一区二区成人| 国产精品日日摸天天碰| 超碰99在线| 亚洲高清视频在线免费观看| 一区二区不卡| 综合色色婷婷| 夜草网站| 亚州九九九精品视频| 久99视频| 日本乱人伦片中文三区| 青青草无码视频| 99爱视频| 日韩激情毛片一级久久久| 国产麻豆一区二三区| 久久99久久99久久99人受| 中文字幕二区| 色五91| 可以在线观看的黄色网址| avav青青草久久夜| 97色碰| 日韩国语字幕| 99欧美| 操逼网免费无码视频| 国产区性爱在线视频秋霞豆 | 友优传媒精品在线一区二区| 欧美一区二区日韩三区| 国产女同在线观看视频| 热热色中文无码| 秋霞色色影院| 日本女人操逼| 狼人综合婷婷激情四射| 4141514逼喷水三级片| 欧美曰韩国产精品| 少妇高潮99p| 色九月| 久操大香蕉| 成人a级高清视频在线观看| 伊人热综合| 乱伦日本中文自拍| 91精品久久久| 欧美国产伊人久久久久| 97在线精品| 1000午夜黄色| 俄罗斯及免费在线看| 欧美色五月| 九九视频黄色片| 校园春色 亚洲| 国产又大又粗又长视频在线| AV电影在线播放| 一个国产在线综合网站| 干B网| 99久热精品99re6热| 色小视频蜜乳| 色y情视频免费看| 欧美色乱| 亚洲一二三四区在线免费看视频| 五月激情综合网| 国产一区二区a毛片| 久久午夜色播影院免费高清| julia ann久久| 欧美少妇色图| 欧美一区二区三区另类精品| 亚乱色| 91无码中出人妻视频| 欧美性色综合网| 色九色久| 国产在线视频二区| 亚州国产精品乱| 久久e6只有精品| 欧美色图在线视频少妇| 伊人天天久久动态图| 国产精品一区二区校花| 中文字幕 人妻不满 在线视频| 加勒比大香蕉视频在线| 国产人妻天天干精品| 亚洲第一在线视频| 九九久久九九久久| 99热在线只有精品| 色妇91| 少妇3P性爱自拍| 日韩欧美加勒比| 少妇精品久久久八区九区| 18岁禁 茉莉成人久久| 91男女啊啊啊| 丁香激情网| 亚洲欧美国产成人综合不卡| 91精品国产日韩欧美综合| 三级日韩一区二区三区| 试看60秒 爽| 少妇的嫩逼图片| 欧美色图在线视频少妇| 国产白丝在线| 丁香色婷婷| 欧美人妻精品一区二区| 国产性爱在线视频一区二区| 你懂的在线观看区国产| 精品综合久久久久久五月天| 综合网91| 欧美大片91| 欧美综合狠| 男人的天堂日韩| 99久热精品99re6热| 亚洲成人精品久久久| 69AV女优男人的天堂| 国产懂色精品国产av| 日韩国产乱子伦App| 日韩 欧美 视频 在线 一区| 日韩性爱小视频| 97碰| 成·人免费午夜在线观看| 麻豆成人影音在线| 亚洲激情深爱文学小说网站| 区自美91| 嫩草91| 国产精品97超碰| 久久精品人妻一区二区三区| 曰本特级特黄特色黄色A级网站高清在线免费看 | 东京热大香焦| 美女黄码视频午夜| 91国产大片| 免费看污网址| 久久久久久久六六| 99re6在线视频精品免费完整版安卓版| 国内精品伊人久久久久影院会| 国产亚洲精品第一最新| 一区在线国产播放| 日本九九九九| 色五月婷婷网| 天天看综合网| 超碰人妻久久人妻中文97| 国产午夜视频| 男人的天堂在线| 夜夜做夜夜爽精品视频| 中文字幕第7页| 日韩综合色网| 草久在线| 亚洲加勒比久久日本道| 精品国产乱码久久| 干我久操| 99国产在线 精品 视频| 国产成年女人免费视频播放a| av一区二区三区不卡| 日韩无码三级影院| 欧美日韩 强奸乱伦| 一级黄色视频网| 日本性爱不卡视频| 婷婷精品视频| 欧美综合娱乐久久| 1000部熟女视频在线观看| 欧美91视频| 国产91精品福利在线| 2018天天日天天日| 又大又长又粗又爽又黄| 亚洲黑人在线| 日韩免费三级黄片电影| 天天做日日做天天欢。| 国产乱码精品一区二区三区四川| 色婷婷久久| 九九热AV| 久久综合日韩亚洲欧美| 日本天天人人狠狠在线日美女 | 亚洲熟女性高潮久久久| 自慰白浆在线观看| 性欧美另类高清| 欧美日韩人人精品| 淫乱图区| 超碰97久| 亚洲AV成人精品网站在AV| 久久久久成人亚洲国产| 六六久久日韩不卡| 91 亚洲情侣偷拍 久久| 日韩精品操少妇| 青草伊人网| 日韩免费在线观看不卡| 色呦呦呦在线观看视频| 中文字幕在线观看丝袜| 中文字幕91综合| 五毛骚逼极品美女怕怕| 啊啊啊啊啊舒服| 亚洲天天在线| 九九视频黄色片| 久久人人舔人人爽舔人人av片| 日日夜夜干| 久操在97| 久久二| 激情无码日韩| 激情文学网伊人| 久久同城AV| 999精品久久久久久久| 18禁免费视频| 1024香蕉视频| AV99热18这里只有精品| 96超碰网| 人人潮人人摸| 美女超碰978| 99re在线视频这里只有精品| 男人的天堂kva| 久久精品 六十路 熟女 欧美| 一区二区三区精品视频| 色妹子A V| 十八禁电影伊人网| 久久久无码视频| 亚洲成人福利电影免费| 睡产熟女乱伦| 大香蕉在线视频重口味毛片在线| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 女人午夜视频777| 欧美综合加勒比在线| 天天碰久久入| 99re98| 久久婷婷综合国际产色怕| 伊人久久大香线综合无码| 久艹99| 99国产精品视频尤物| 亚洲国产精品乱码在线观看| 是还免费视频1727我| 亚洲熟女人妻中文字幕一区二区| 亚洲成a人在线观看久| 亚洲综合另类欧美久久久| 国产熟女一区二区| 亚洲欧综合另类无码一区| 欧美日日夜夜| 精品久久97| 午夜性生活av免费在线看| 欧美精品1区2区3区| 天色综合网| 九九九免费视频| 制服乱伦| 狠狠躁日日躁夜夜躁A| 手机午夜电影神马久久| 成人电影一区| 九九久久久九九| 91美女片在线| 国产福利影视| 亚洲综合射| 操逼视频国产无套| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 国产精品不卡av免费在线观看| 九九99精品视频在线观看| 久久九操在线观看| 岛国网址国产| 亚洲三级网址久久最新| 久这精品中文在线观看视频| 亚洲制服欧美另类内射| 涩涩久久精品| 天天澡天天爽日日AV| 开心五月天激情网| 草B在线| 人人摸人人干人人拍97| 欧美中字不卡| 色哟哟AⅤ| 欧美爆操91| 欧美影院一区二区三区| 久久久久精| 狠狠爱大香蕉| 欧美日本中字另类在线| 日本99一区二区| 无遮挡一级毛片视频免费的| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 成人小说视频在线精品欧美| 素人播放一区| 欧美激情视频一区二区| 日本片日本片祼观看网站在线看中文版网页在线看 | 麻豆60秒| 男人的天堂Va| www99热| 一本色道久久综合精品婷婷| 超碰人人色| 午夜操一视频一区| 色婷婷狠狠| 青青草好吊| 亚洲精品日韩国产欧美| 日本国产二线女色| 亚洲AV成人无码久久精品播放| 天天操天天谢| 婷婷中文网| 亚洲黄a三级三级三级看三级| 色色色色日本| Aa东京男人的天堂| 亚洲成人美女无吗| 亚洲天堂久| 免费啪啪啪网站18岁| 四虎影视国产精品| 99自拍视频在线观看| 国产精品日日摸天天碰| 五月丁香| 91宗合网| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 啊啊啊啊好疼视频| 99热只有这里有精品| 久艹视频在线| 欧美成人黄网色网站| 日韩91网| 人妻久久久久久久久久久久久久久| 97欧美日韩综合| 久久久久无码| 亚洲欧洲日本精品中文a∨| 精品999日本| 好属操| 美女露胸露屁股| 国产黄色在线播放观看| 亚洲色图欧美另类在线| 国产一级作爱毛片| 91艹| 人人爱操| 天天干人人看综合| 亚州再线| 久久久久久久亚洲Av无码| 精品大全99999| 91美女中出| 精品三级在线专区| 97干com| 26UUU欧美激情一区二区| 黑人粗大V S日韩女优视频| 性色av婷婷久久一区二区点复制| 久久尹人大香焦视| 啊啊啊啊啊在线视频| 国产精品久久久久中文字幕| 国产精品另类一区大香蕉| 97欧美性爱| 欧美激情在线观看视频| 精品超碰中文在线| 黑人美精品 A片| 久久熟女嫩草成人片免费| 久久久蜜桃一区二区三区| 欧美gv在线观看| 亚洲人码13| 中文字幕 人妻不满 在线视频| 永久免费av无码网站国产app| 日韩欧美中文字| 搡老熟女老女人老熟妇免费视频| 天天干18禁| 九九九九九用不成了| 蜜桃av综合网发布| 蜜臀久久99精品久久久电影| 花野真衣| 国产精品无码av| 91A欧美电影网站| 精品视频专区| 国语对白在线播放视频| 精品人妻一区二区三区不卡断| 欧美三级免费伊人| 欧美综合区| 91狠狠综| 97网址97| 丝袜六区| 久久国产免费激情视频|