日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满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
返回資訊列表
美女操逼福利视频| 午夜精品久久久久| 日韩操逼性鲍| 国产sv美女内射| 亚洲中文人妻色| 99久久网站| 精品日韩人妻精品一二三区| 亚洲色图欧美色18直播在线| 1769成人国产精品视频| 大香蕉人妻久久| 亚洲第一页欧美| 91狠狠色丁香婷婷综合久久| 色99色| 日韩亚洲国产视频| 91成人高清在线观看| 深喉吞精| 老熟女搡BBBB搡BBBB视频| 国产白丝av| 亚洲情色综合网| 91在线/欧洲| 九九热超碰97亚洲最新香蕉 | 日韩人妻少妇 一区二区三区| 欧美三级中文字幕hd| 蜜乳中文字幕a在线| 熟女熟妇一区二区三四区| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 久久精品99| 欧美性,亚州色| 蜜桃臀av在线观看| 免费夜夜爱黄色视频毛片| 日本人人操人人操| 亚洲精品影视老司机| 无码高清操逼网址| 乱伦日本色图AⅤ| 可以在线观看AV的网站| 久久99人妖视频国产| 亚洲天天做日日做天天谢日日| 后入式999| 超碰中文字幕人妻草一区| 免费观看欧美日韩操逼视频| 日韩精品三区四区| 欧美亚洲美少妇一区二区| 国产日本熟女顶级一区二区三区视频 | 成 人片 黄色大片| 久久久99免费| 综合影院永久入口国产| 久久国产逼| 色97干| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 欧美少妇高潮视频| 91精品又粗又猛又爽| 亚洲日韩XXX| 热久久国产精品视频大陆精品| 欧美成人9797| 激情一区二区| 亚洲本色精品一区二区久久| 精品三级在线专区| 性在久久久久久| 国产在线强奸视频| 深夜国产一区二区三区在线看| 黑人精品久久97| 欧美情色男人的天堂| 国产原创自拍| 国产AV人人 夜夜人人澡| 亚洲日韩东京热一区| 日本超碰97日韩精品人妻| 一区二区三区色综合| 限制级中的三级片中的黑粗大屌屌日人妻熟女| 97超碰精品成| 无码黑人精品一区二区三区三| 色色色日本| 色久桃花影院在线观看| 日本性爰一道本| 97亚洲综合电影| 岛国AV一区二区电影| 人妻密肉在线观看| 97伊人| 五十路三区在线| 国产成人自拍视频视频| 丁香五月激情综合| 1二区9| 制服丝袜第二页| 在线视频97| AV麻豆免费一区| 国产午夜无码片在线观看影视| 99久久婷婷| 熟女一区二区| 婷婷超| 黄在线| 天天色香欲综合网| 亚洲蜜乳av| 日本色婷婷| 成人无码专区精品视频| 91视频女生| 91精品久久久久五月天精品 | 欧美 日韩 国产传媒| 欧美丝袜亚洲| 免费看国产曰批40分钟怎么下载| 亚洲第91页 | 五月天AV资源| 爽 好舒服 无码刺激久久| 人人色97| 色爱天堂| 91成人久久| 天美传媒Av在线| 亚洲a色| 久久精品国产亚洲AV成人直播| 大香蕉免| 日本操BAV| 神马久久中文字幕| 成年人黄色视频免费| 欧美成人9797| 亚洲 欧美 日本 国内 首页| 欧美另类精品xxxx| 欧美性爱网97| 色网在线视频观看免费| 熟女一区二区| 日韩熟女乱伦中出| 男生女生啊啊啊啊| 亚洲国产精品无码AV久久| 9久超碰| 熟妇的味道HD中文字幕| 青青草视频在线观看一区二区| 欧美啪啪色吧在线| 少妇毛片久久| 免费观看国产不卡av| 日韩一区二区熟女| 高清国产精品无码| 91精品免费| 国产精品免费视频人成| 久久久一区二区三区麻豆| 国产成人久久久精品免费AV| 熟妇女伦乱视频| 91neishe| 精品亚洲一区在线观看| 一区二区三区蜜桃成人撸久久东京热 | 欧美性爱第一区| 大香蕉在线视频15| 一级成人性爱| 中文字幕日韩情色| 婷婷五月天色色| 九九九色| 啊啊好多水| 伦激情人妻另类人妻| 999综合色| 国产av美女被艹的乱叫| 亚洲性高潮| 国产不卡片| 无码人妻精品一区二区三区99不卡 | 久操视频在线| 亚洲不卡av在线| 亚洲欧美综合区自拍另类 | 老司机深夜影院18未满| 欧美—性—交—色| 欧美色图中文字幕| 久久久久幕乱码| 亚洲AV秘 精品久久老牛影视| 亚洲av强奸乱伦| 91九九| 亚洲棕合电彰| 99热伊人| 亚洲无码精品AV久久久| 国产又长又大又粗的视频| 大香蕉黄色一区| 日韩三级伦理中文字幕| 亚洲欧美日韩电影网站一区 | 精品无吗久久| 91美腿丝袜在线观看| 思思视频免费看网站| 男人的天堂日韩| 这里都是精品在线观看| 亚洲好看强奸乱伦| 亚洲色图欧美一区二区不卡| 国模限制级电影| 加勒比久久综合网高清| 亚州综合色| 欧美亚洲厕所精品偷拍91| 国产亚洲日本精品在线| 欧美高清无码免费视频高清版| 亚洲日韩久久精品一区| 亚洲另类色图片| 欧美极品性爱天天射| 超碰97久久| 91成人久久| 熟女丝袜视频| 99热99色| 国产一区在线免费播放| 日本国产亚洲一区在线观看| 影音先锋日本乱伦| 超碰免费人妻在线| 91美女小视频| 欧美色青| 成人一二三区| 九九九精品色乱九九九| 天天干天天插| 偷拍 精品另类 凸凹了四区| 操逼逼一区视频| 91麻豆天美传媒在线| 一区二区三区蜜桃成人撸久久东京热| 色一射色一射| 亚洲成人碰碰| 亚洲色图激情小说| 天天插天天操| 一区二区三区机械有限公司| 操逼逼无码| 丰满人妻无码一区二区三区| av网站国产主播在线| 99re超碰| 啊啊啊网站| 97超碰日韩| 久久精品国产亚洲粉嫩| 在线天堂资源亚洲| 天堂男人网| 91亚州| AV女资源| 狠狠爱综合网| 日本韩高清无砖码22o| 欧美综合自拍亚洲综合图| 欧洲亚洲人人爽爽视频| 久神马| 欧美色图人妻| 中文字幕一区二区三区四五区| 桑老女人九区| 天天躁日日躁狠狠狠躁| J?P?NESEHD熟女熟妇伦| 久久久性| 狠狠操官网| 国产精品 久久久精品一牛| 国产操偷| 最新啪啪视频| 色五月婷婷麻豆在| 天天日日舔舔| 欧美91丝袜| 亚洲素人网| 日韩电影中文字幕| 亚洲国产精品无石码久久| 91天天| 丰满人妻被猛烈进入中| 中文字幕精品资源在线| 色婷婷小说| 日韩国产品视频中文字| 久久久18禁| 中文字幕日韩情色| 九九热三级片| 日韩精品黄片免费观看| 色综合99| a人片中文字幕一区二区| 91欧美另类| 天天欧美| 国产精品白领在线观看| 国产精品探花在线| 蜜色网色哟哟| 亚洲天堂少妇| 人人爱人人乐人人操| 美國A片| 激情综合网五月婷婷| 91亚州日韩高清| 超碰这里只有精品| 激情综合网激情综合| 亚洲图片日本AⅤ欧美在线| 婷婷成人五月天| 吉田爱美AV在线| 女人香蕉久久毛毛片精品| 久96热在线观看视频| 国产亚洲禁久一区二区 | 伊人aaa| 亚洲男人天堂视频| 欧美成人A天堂片在线观看| AV免费在线播放一区| 荡小穴在线观看| 色天堂综合| 亚洲情色视频| 99久久精品国产高潮| 人人操天天爽| 78m成人视线| 亚洲九月丁香| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 少妇一区二区三区高速| 99热精品在线观看| 精品少妇99| 天天艹天天日| 最新av在线| 天天天肏屄肏屄肏屄欧美欧美| blacked精品一区国产| 精品久久久久久亚洲| 少妇贴图| av天天在线观看| 综合五月天| 国内毛片婷婷六月色| 熟妇人妻一区二区三区| 欧美不卡在线一区二区| 99久久com免费视频′| 无码粉嫩白虎一线天b区| 日韩激情啪啪啪| 九九九九九九成人| 强奸抽插av| 1024亚洲中文字幕久在线看片你懂的| 变态综合色| 婷婷五月影院| 亚洲 欧美综合| 五月婷在线| K8久久久久| 99婷婷| 97久久久久| 婷婷五月天伊人| 久久久久久中文| 精品一区二区成人动漫| 亚洲毛片久久| 91老熟女逼| 桃花色综合影院| 丁香五月天久久精品视频一区二区三区| 亚洲中文字幕精品一区| 一区二区不卡| 屁屁影院一区二区三区国产| 欧美性爱超碰97| 啪啪一区| 免费看黄视频亚洲网站| 国桃视频产巨乳精品一区二区在线| 91足交| 欧美综合网1| av天堂手机版追回| 国产女大学生AV| 欧美日韩精品国产91| 欧美 日韩 亚洲 春色| 男人天堂久久精品不卡| 久久婷婷色| 欧美色www亚洲国产阿娇要播| 精品人妻美妇91job| 97亚洲中文| 丝袜大香蕉| 白丝被操91| 少妇一区二区三区在线观看| 欧美成人四级在线播放| 亚洲图片91| 密臀在线免费观看| 丁香五月天堂| 国产自制av蜜乳| 国产亚洲日本| 九色 人妻 大香蕉| 亚洲一区二区精品福利| 欧美黄业| 婷婷探花久久精品一区| 性色乱AV一区二区| 色色丁香| 亚洲欧洲精品视频发布| 国内毛片无遮挡国产| 国产天天噜一噜久久久| 超碰天天操| 狠狠爱综合| 国模私拍一区二区三区神乳| 91精品国产91熟女| 亚洲午夜蜜臀| 刺激性视频黄页| 99操视频| 亚洲图片欧洲图片aⅴ| 无码高清操逼| 美女黄码视频午夜| 玖玖爱综合| 天天综合网~69| 女人 A一级| 国产操逼网站亚洲一级黄色| 中文字幕一区二区视频在线观看| 天天综合网~91综合网| 99re在线视频国产| 亚洲一二三精品久久网| 嗯嗯啊中文字幕| 操逼免费视频无码国产| 一道α片欧美| 九九九九热| 欧美高清91| 亚洲情色综合网| 欧美成人综合| 天美传媒Av在线| 九九九午夜| 99在线精品观看99| 国内三级自拍小视频在线观看 | 国产欧美伊人| 亚洲精品一区二区三区新线路| 国产综合永久精品日韩鬼片| 人妻丰满熟妇一区二区三| 欧美后入| 国产家庭乱伦性爱视频| 超碰在线人人射| 久久大黄片| 人人操人人肉久久精品| 久久六六| 91操熟女视频| 超碰久草| 91天堂| 农村妇女精品一二区| 怡春院久久| 玖色av| 国产精品白丝www| 国产欧美日产一区二区三区 - 国产欧美日 | 欧美久久人人网| 激情 欧美 亚洲 小说| 久久伊人亚洲AV无码网站| 精品对白久久不卡| 成人免费看吃奶视频网站| 99热这里都是精品| 国产亚洲色停停久久99精品91| 天堂v无码免费视频| 久久加勒比| 中文字幕丰满人妻日本| 黄片免费日韩| 中文字幕精品人妻丝袜| 殴美性色a级欧美| 色哟哟-国产专区| 男人的天堂.com| 99日免费视频中文字幕| 日日爽熟女| 香蕉视频欧美一卡二卡| 在线播放成人高清免费视频| 丰满人妻无码一区二区三区| 久久97| 欧美曰韩国产精品| 国产嫩草精品A88AV| 富女玩鸭子一级毛片| 亚乱色| 97精品国产97久久久久久| 78久久久| 97亚洲色图| 91美女在线观看| 国产啊v在线免费播放| 波多野结衣一级视频| 国产久久av| 99综合视频一体| 日本在线不卡123| 欧洲天天在线| 九九久精品| 一级一性爱免费视频| 日韩欧美成人综合在线| 久久久草成人网站久久久草成人久久久草久久久 | 欧亚性爱视频免费看| 国产毛片精品一区二区色欲黄A片| 综合五月婷婷亚洲一区| 最新加勒比丝袜在线| 激情情色五月天| 亚欧成人一级片在线播放| 国产精品探花在线| 天堂av2019| 97er欧美性| 欧美日韩日产免费网站看| 骚日日av| 亚洲情色图片区| 夜夜操二区| 国产精品盗摄 偷窥盗摄| 色网亚洲人| 啊啊啊啊啊啊啊在线| 亚洲精品色| 91久久久视| 久久免费精品96| 中文幕97| 久久久av爱| 蜜桃视频一区二区三区在线观看| 日产国产精品中文久久婷婷| av天天在线观看| 抽查国产福利主播| 久久一二三四不卡 | 性色A∨91| 性猛交| 精品无码一区二区三区| 日韩人妻一区二区| 午夜视频久久久久一区| 国产性爱乱伦AV| 黄色片大香蕉| 国语人妻精彩刺激| 五月天久久婷婷亚洲| 新97国产超碰| 囯产精品久久久久久久久久二区三区| 看日韩黄片| 国模少妇一区二区三区| 婷婷久草一区二区三区| 日产123区精品免费观看| 国产嫩草精品A88AV| 97超碰久久| 密臀AV在线| 一区二区三区 丝袜高跟| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 亚洲欧洲日产国产综合网| 国产欧美日韩在线观看麻豆传媒公司| 欧美夜夜狠| 按摩中文字幕| 久久a久久| 精品9区| 大香久久| 国产精品成人无码av无码免费| 色婷婷亚洲婷婷| 青娱乐福利99| 看大黄色大片原件| 久草精品热视| 天天久久| 这里只有精品久久| 无码操逼天堂| 天天做日日做| 撸撸成人在线视频| 乱伦一区二区三区‘| 亚洲综合春色| 九九热九九| 99久久亚洲精品无码毛片潘甜甜 | 一本道综合色图| 校园春色美腿丝袜 | 中国一级操逼视频| 激情欧美日韩女同久久| 欧美性生活男人的天堂| 超碰97男人| 妇女性内射冈站HDWWWCOM| 中文字幕 一区二区 亚洲无码| 成人精品欧洲亚洲| 日本护士高潮| 啊啊啊爽爽| 超碰资源亚洲97| 亚洲美女精品九九视频| 国产玖玖| 加勒比在线观看一区二区| 日韩一级二级在线| 全球成人中文在线| 天美传媒AV在线播放| 亚洲综合春色| 日韩无码三级影院| 一级AAA片一区二区三区| 亚洲中文字幕久久人妻| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 精品欧美乱码久| 干婷婷综合网| 亚洲欧美人妻| av婷婷色网| 国产强上视频在线观看| 久久精品久久久久久久| 欧美在线视频观看一二三四区高清| 色嗨嗨在线| 久久 精品| 日韩97视频| 色偷偷色偷偷欧美日韩| 少妇一区二区三区精选| 欧美另类自拍| 99色热国产视频精品| 中文字幕人妻色偷偷久久皮| 国产福利电影| 久久熟女久| 一本久久久精品| a片亚洲一本通视频| 欧美黑人猛交春色影视大全| 97国产成人精品免费视频| 97天天操| JuliaAnnXXX888| 日韩欧美蜜桃精品久久中文字幕久久| 97人人中文网| 艳尻美人妻| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 亚洲 无码 偷拍| 欧美综合中文| 欧美成人一级麻豆| 国产精品干干干| 狠狠躁日日躁夜夜躁A| 69精品久久久久中文字幕| 青青操国产夫妻| 久热影视| 91快色色色色色| 国产精品一区午夜福利| 国产高清免费不卡av| 亚洲一区二区三区播放在线| 一区二区三区黄色片a| 欧美日韩电影成人在线| 18禁无码永久免费无限制| 另类图片欧美激情综合| 翔田千里AⅤHD无码| 国产91精品福利在线| 亚洲成熟国产精品美女| 久久免费精彩视频| 91美女在线视频| 久久亚洲人妻| 另类欧美色| 男女一进一出视频久久| 尤物网址| 色综合色综合网| 天天射网| 国产丁香精品露脸视频| 清纯唯美亚洲| 久思思热视频在线观看| 国产男女无套视频免费观看| 丁香五月AV| 91色噜噜狠狠| 综合熟妇一区二区三区| 一个国产在线综合网站| 99天堂网| 蜜臀th| 色吧 综合| AV九九| 激情小说亚洲视频| 亚洲色婷婷久久91| 国产精品嫩草影院免费| 91精品电影18| 精品无码久久久久| 丁香婷婷大香蕉| 60秒免费小视频| 青青青国产手线观看视频2| 国产视频一区二区免费| 蜜臀久久99精品久久久久久成人小说 | 久久久久亚洲AV无码专区少妇| 久久国色天香香蕉| 欧美色91| 一区二区三区男人的天堂| 亚洲成人帖图| 欧美精品久久久久久久丰满| 强奸乱伦av电影| 香蕉久久国产AV一区二区| 国产大片精久久久久久| 日日AAvv| 精品国产无码中文| 人妻久热在线| 97超碰站| CCYY草草影院地址入口| 人妻少妇精品一区二区三区| 熟女91网| A久久| 丝袜综合| 97超碰磁| 91爱做| 黄色大片免费在线| 国产精品自在自拍视频| 久久久久久久久久久久欧美日| 免费试看60秒| 久久国色天香香蕉| 亚州综合在线| 久久综合久久综合人久久夜精品| 欧美91在线| 久久久久中出| 高清在线不卡一区二区 视频| 久久国产视频专区一二三| 婷婷五月天激情网| 欧美日韩青操| 女人被男人桶爽视频网站| 10000部十八禁看电影| 免费成人自拍视频在线| 欧美日韩淫加| 国产Av超碰| 亚洲丝袜B诱惑| 久久久久九九九| 国产自偷| 人妻久久久| 日韩综合无码色欲vv| 青青草中出视频| 婷婷五月天无码 | 大香蕉伊人一区在线观看| 在线中文字幕| 久久大香蕉97| 日本午夜福利影院| 国内毛片欧美香蕉精品| 97欧美色综合| 日韩无码专区| 717影院理论午夜伦八戒| 亚洲国产综合久久久性感熟妇| 干B| 岛国片在线视频网站| 青青草原人妻| 我要色综合网| 嫩草一区二区在线观看| 狠色婷婷久久一区二区三区_| 97天天日| 成人贴图日韩欧美| 尤物国产一区在线观看| 先锋色眉乱伦资源| 一区二区三区免费视频入口| 天天欧美97| 超碰97导航| 亚av顶级裸体一区二区三区四区五区 | 很很干很很操| 日本片日本片祼观看网站在线看中文版网页在线看 | 青青草十区九区爱夜| 亚洲黄色AV电影| 国产av尤物| 综合五月天| 韩日男人的天堂| 久久精品国产亚洲AV高清演员表| 搞中出久久| 亚洲激情综合另类男同| 国产一区二区三区久久久精品| 啊啊啊啊好爽好舒服一区二区易域| 欧美极品色| 天操老女人| 另类成人首页一区| av天堂加勒比| 97视频免费播放| 精品人妻一二三| 亚洲中文字幕熟女| 操逼逼福利视频| 人人看人人摸人人色| 亚洲欧美日韩精品久| 亚洲AV无码国产成人| 欧美视频边做饭边橾| 亚洲天堂99| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 欧美巨大性舒爽顶到了| 超碰国产精品久| 综合色图区| 欧美性战999| 亚洲欧美激情小说| 久久草草亚洲蜜桃臀| 爱做久久久久久| 观看免费区二区三区二| 超碰在线97国产| 97ai亚洲| 色欧洲| 黑人精品成人一区二区三区 | 强奸乱伦AV一天堂网| 蜜臀久久99精品久久久久久无删减 | 午夜欧美精品久久久| SUV一区二区在线看| 夜夜嗨一区二区| 一本一道vs波多野结衣| 日韩三级在线观看网站| 国产精品白丝AV| 精品97精品97| 免费观看有码高清视频| 伦伦成年午夜免费视频| 啊啊啊免费视频| 色眯眯av| 欧美大片天天看| 粉嫩国产精品久久粉嫩| 亚洲最新a在线观看| 人人看人人插| 天天澡天天爽日日AV| 综合亚州欧美| 91在线国产后入风骚翘臀美女素人| 一区二区三区四区五区高清无码永久视频| 激情综合五月丁香| 中文字幕亚洲热播人妻| 国产精品原创巨作?v网站| 超碰在线91| 97超碰人操| 婷婷美人网| 91在线免费观看处女| 这里都是精品在线观看| 国产91精品福利在线| 久96热在线观看视频| 日韩大香蕉AV影片| 久久一区,青青青青草视频在线播放| 欧美日韩丝袜| 久久综合激情| 五月天玖玖资源站| 欧美一级久久久久久久大片动画| 日本孕妇一区二区视频操逼免费看 | 国产福利电影| 国产熟女精品一区二区| 校园春色 亚洲| 97天天插| 我想要啊 啊 啊| 99蜜桃臀亚洲成人在线观看| 麻豆天美久久91| 97中文天堂| 天美传媒国产原创中文字幕亚洲欧美另类| 人妻精品一区二区在线| 五月丁香拍拍激情综合三级| 欧美精品一区二区少妇免费A片| 强奸抽插av| 最新国产精品| 97在线免费视频观看| 亚洲丝袜诱惑| 乱欲视频| 一级性爱视频免费观看| 欧美日韩插逼视频| 国产美女自拍AV| 免费观看国产小粉嫩喷水精品午| 日韩欧美大力操| 丝袜美腿制服人妻二区中文字幕| 日韩在线观看字幕精品| 亚洲码专区| 99操视频| 日韩乱码Av| 久久久久久久久久久人妻| 熟妇亚洲一区二区三区| 久久不卡一区二区| 成人热久久精品| 91老熟女老女人国产老太| 亚洲综合大片| 成人青青草原伊人| 91亚洲欧洲| 欧美性爱精品七区| A一区片| 久久美女福利是上海美女| 五月丁香影院| 成 人 影视 一区 二区 三区 四区| 91n美女视频| 九一精品牛牛一区二区| 亚洲综合色在线| 操91| 2024黄色视频| 岛国视频一二三区| 精品-91人妻子系列| 久久久九97| 色av中文字幕| 久久久三区二区一区| 日韩八十路老熟女| 成年无码动漫av片无尽在线| 国产极品精品美女视频| 日本色婷婷| 天天享受天天看| 欧美日韩97在线| 亚州综合色| 欧美不卡五十路| 亚欧Av| 综合久草| 欧美一二级| 国产精品白丝| 一区三区啪啪| 一区 欧美 日韩 麻豆| 亚洲欧美骚| 亚洲,日韩,欧美,成人播放| 精品久久久亚洲AV成人网站| 蜜桃视频精品一区二区三区| 久久久熟女一区| 校园春色综合网| 亚洲精品日韩国产欧美| 免费农村成人少妇人妻Aa一区二区视频| 国产精品视频在线播放 | 久久精品日韩专区免费观看| 亚洲欧洲av影音| 久草五月| 鸥美极品| 欧美精品久久96人妻无码| 99热只有这里有精品| 久久超碰亚洲人| 欧美在线天堂| 超碰99在线| 久久久9 9 9精品| 岛国1区2区3区在线观看| 亚洲91av| 欧美不卡五十路| 中出91| 精品无人区麻豆乱码1区2区图片 | 日韩欧美亚洲自拍偷拍| 国产男女无套视频免费观看| aaa淫乱视频| 一区二区三区视频| 99久久com免费视频′| 超碰色大香蕉| 美国一区二区免费视频| 欧美性爱网97| 人人干黄色| 欧美综合色站| 麻豆精品.欧美精品.日韩精品.| 国产精品自在自拍视频| h色99999| 超碰成人公开| 狠狠色一区二区中文字幕| 日本久久女同性恋视频| oumeisetu综合| www.av家庭乱伦| 亚洲图片欧美91N| 91国产操逼视频| SS久久| 日韩三级天堂在线观看| 久久精品国产97欧美精品亚洲| 免费毛片在线播放| 一区二区视频在看| 亚洲人成色9999精品久久| 人人搞人人插人人操| 一区二区三区四区姦女| 啪啪性爱免费视频| 青春草A| 欧美亚洲一级在线观看| 亚洲欧洲久久天堂| 91快色色色色色| 久久精品一区二区三区蜜桃臀| 日韩激情中文字幕有码| 日韩熟女精一区二区三区不卡| 人妻熟女一区在| 亚州综| 宅男午夜在线视频| 日韩一级性爱无码| 人人超碰在线观看黄| 国产人妻天天干精品| 亚洲中文sv| 亚州精品一区二区三区香中文字幕在线| 不卡日本一区二区| 性色高清在线| 91碰超| 精品人妻av区天天看片| 亚洲色图20p| 午夜激情成人在线观看| 丝袜天堂网| 五月天色色网站| 人妻久久一区二区三区 | 91日日夜夜| 日本狠狠干| 69XX一中文字幕人妻91| 高跟伊人julia ann| 一起草精品人妻| 精品一区二区三区丰满熟女-亚洲欧美一区| 青娱乐亚洲热| 女人被男人桶爽视频网站| 久久精品噜噜噜成人看免欧美大片| 欧美天天拍| 亚洲欧洲综合av在线| 福利天天都操| JULIA人妻风俗店中出电影| 最好看的中文字幕在线2018| 亚洲中文字幕一区二区| 欧美成人色| 91中文在线| 欧美精品日韩久久久九| 欧美欧美少妇| 黄资源| 伊人影院在线理论播放 | av婷婷色网| 色丁香久久| 狠狠操官网| 亚洲自拍97| 欧美伦乱爱| 久久五月丁香| 性影在线视频| 麻豆天美一区二区| 欧美线天码中字| 青青草视频久久久久| 天天色综亚洲91污| 欧美亚洲素人制服精品| 麻豆精品.欧美精品.日韩精品.| 91丝袜激情在线| 日韩在线76| 亚洲日韩成人性爱视频| 国产女乱淫真高清免费视频| 欧美日本成人一区二区| 亚洲综合有码| 亚洲污污网站| 欧洲色| 成片免费播放| 偷窥自拍A片| 盗摄女人妻在线| se吧提供91精品国产91久久久久久| 亚州一区二区| 啪啪啪亚欧美视频| 全国男人天堂网| 欧美成人综合| 试看福利| 91久久久老司机| 天天综合网91入口| 国产欧美第五页| 噜噜噜狠狠色综合| 午夜精品探花| 搡老熟女老女人老熟妇免费视频| 日本一区二区不卡精品| 国产精品久久99日日| 国产日韩色综合| 9国产超碰| 亚洲成人在线高清| 看免费的黄片| 欧美成熟性爱精品| 超碰97色| WWW.操逼.COM| 激情色图| 亚洲一区中文精品| 欧差乱伦二三| 无套后入双马尾| 猛猛干| 久9九综合在线| 精品人妻丰满熟妇一区二区三| 青青草原av| 91丝袜视频在线观看| 哈哈操电影| 夜夜春夜夜操| 丰满丝袜少妇AV| 亚洲AV不卡在线观看| 国内成人圈中文字幕无码视频| 亚洲高清视频在线观看| 91国产大片| 熟妇国产免费一区| 9久9久9久9久视频网站| 可乐操在线| 久夜视频| 熟女五十路一区二区三| 国产精品成人无码a v毛片| 思思热免费在线视频| 精品久久久久久中文| 91av熟女人妻| 久久久精品无码亚免费| 嫖老熟女A片一二三区| www.激情| 欧美黄页在线| 96免费视频在线| 九九九草| 亚洲色图日韩丝袜制服一区二区五月在线| 亚洲日韩资源| 亚洲欧美综合| 一二三四视频中文字幕在线看| 久久精品国产亚洲AV高清演员表| 台湾成人无码AV| 人妻嗯啊啊在线播放 | 日本 情色 1区2区3区| 久9久9久9久9久9久9| 中文字幕久久婷婷丁香五月天 | 东京太热久久久| 天美传媒Av在线| 欧美人妻少妇| 中文字幕一区二区免费在线| 唐山老熟妇露脸啪啪叫| 91 手机在线播放 绯色| 五月天加勒比啪| 欧美色视| 午夜一区二区三区国产| 欧美综合区| 久日91在线| 欧美亚洲系列| 一区不卡在线观看av| 久热9| 加勒比伊人影院| 精品欧美乱码久| 亚洲系列第一页| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 久久久久成人亚洲国产| 曰韩精品九九无码| 天天干人妻| 久久人妻| 国模少妇一区二区三区| 天美传媒AV国产在线| 蜜臀AV午夜精品久| 精品亚洲国产成人精品| 91大神电影天堂| 熟妇人妻精品一区二区| 影音先锋新男人| 日韩在线76| 人人澡人人澡人人| 无码精品一区二区三区潘金莲| 少妇 综合| 97爱啪| 成在线人在线观看视频| 少妇一区二区三区在线观看| 久久精品无码一区二区三区| 亚洲 日本 国产 综合| 欧美嫩性色| 密臀在线视频| 91精品无码人妻系列| 久草色悠悠在线视频| 天天久久久久久| 日本在线播放不卡一区| 制服中出中文人人精品| 在线视频97| 九九久久99| 人人摸人人舔一区二区| 久久老女人| 成人情色一区二区| 中文字幕第2页| 亚洲AV无码国产成人| 亚洲情色一区二区三区| 国产欧美精选自拍一区| 亚洲男人天堂2016| 天天摸夜夜添无码小视频| 欧洲亚洲人妻无码中字久久三区四区| 九九九不卡| 激情五月天综合网| 天天干人人乐| 大香蕉乱伦视频网| 亚洲人综合19| 一区二区三区精品黑丝白丝酒店对鸡| 日夜尻逼网| 最新亚洲人成网站在线影院| 亚洲精品1区| 密乳AV免费观看| 18岁禁 茉莉成人久久| 亚洲导航深夜福利| 精品一国2| 草草网站影院白丝内射| 久久夜嗨| 日韩无码黄色片| 麻豆天美在线喷水AV| 黄色AAAAA欧美| 99精品在线| 人妻av在线| 男人天堂2019| 色婷婷电影| a'v在线资源| 亚州人妻| 曰本人妻人人澡人人夹| www.久久超碰| 日韩天美| 一级特黄aaa大片在线观看成人一级片在线观看 | 人妻另类 专区 欧美 制服| 开心五月天激情网| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 18禁免费视频| 天天综合91入口| www.久久| 国内偷拍精品一区二区| 久9久9精品| 五月婷婷无码| 91少妇| 婷婷另类小说| 蜜臀操逼黄色视频操的好爽| 欲色综合| 欧美少妇性乱| 青青草天天亲夜夜操网| 色欧洲| 日日妻色网| 密桃99999| 国产野战露脸在线播放| 亚洲有码视频二区| 亚洲中文字幕日产无码久久| 亚洲乱码尤物193YW| 九九九九精品视频| 97青娱乐超碰久久| 久久久精品无码亚免费| 91九色丰满高潮| 亚洲A色| 午夜黄色免费在线观看| 青娱乐啪啪视频| 夜色97| 青青草在线视频人人想人人上| 国产亚洲性生活视频播放| 丝袜内射| 国产精品久久久久无码Av网曝门| 粉嫩久久久极品| 91丝袜美女| 国产福利精品最新在线| 亚洲国产一区二区日韩专区| 99国产女人| 啊啊啊啊啊舒服| 天天综合网AV91| 999久久久久久久精| 开心激情婷婷| 国内自拍 日韩激情 99| 国产精品成人无码a v毛片| 欧洲久久一二线| 亚洲男人天堂手机版| 春色综合免费| Aa东京男人的天堂| 久久999久| 久久精品一区二区三区不卡| 欧美v亚洲v日韩v最新在线二区 | 国产精品久久久久久 百度| 日韩操啪| 久操免费观看| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 伊人激情五月天一区二区| 人妻精品一区二区三区| 色69大色97香蕉| 乱欲性色| a网站免费观看| 久热91| 岛国黄色大片网站| 老女人综合网| 久久免费少妇| 91精品在线播放| 欧美曰韩国产精品| a人欧美综合天堂麻豆| 国语人妻精彩刺激| 亚洲日韩美国人妻| 黄片免费看的| 欧美日韩黄片精品在线| 日本操逼视频免费| 操人妻视频| 男人的天堂99| 日韩有码回春沙龙第一页| 精品无码一二三四区| 欧洲中文字幕| 天天操天天射青青草| 99少妇精品视频| 国产一区二区视频在线播放| 九月丁香综合网| 成人性爱美曰韩| 欧美强奸乱|