日韩精品一区二区三区在线视频放-无码中文字幕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
返回資訊列表
99在线视频播放| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 美國A片| 夜夜高潮夜夜爽夜夜爱爱一区| 亚洲乱码国产乱码精网站| 99少妇| 69精品人人人人| 可免费观看的av毛片中日美韩| 偷拍在线观看视频| 国语人妻精彩刺激| 国产成人91一区二区三区| 死我十八禁| 夜夜一区二区| 亚洲图片欧洲图片aⅴ| 久久啊啊| 91人人| 最新av在线| 亚洲成人综合在线| 日韩一级成人毛片免费观看 | 强奸a片网| 人人看黄色视频| 欧美 熟女 日韩| 午夜超爽| 亚洲**2021在线观看| 久久9999| 男人的亚洲天堂| 图色综合网| www99热| 欧美另类综合久久| 99视频这有这里有精品| 亚洲性网| 97精品一区| 亚洲色资源| 精品乱子一区二区三区99| 超碰在线成人| 欧美成人黄网色网站| 综合五月天| 中文字幕无码不卡啪啪| 男人天堂综合| 男人天堂毛片| 婷婷色香伊人| 日韩激情电影中文字幕| 尤物网址| 国产啊v在线免费播放| 大学生美女口爆| 婷婷精品国产欧美精品亚洲人人爽| 大香蕉 222| 国产区性爱在线视频秋霞豆| 99在线无码精品秘 入口黑人| 91w欧美| 91热| 天天弄天天操| 中文一区在线视频| 性色av婷婷久久一区二区点复制| 丁香五月激情网| 深夜激情无码| 婷婷五月天综合网| 日韩精品区二区三区不卡| 亚州国产精品乱| 无套内射性感少妇视频| 国产99热| 在现视频女上位好爽| 精品一区二区三区蜜桃臀赵总| 天天干天天干天天干| 日本狠狠干| 欧美三级不卡| 美女黑人91神马| 亚洲影视第一页| 福利五区| 国产成人亚洲精品无| 男人亚洲天堂| 亚洲天堂中文字| 日本视频在线观看污污污| 殴美大黄片| 激情四射婷婷四五月天| 91丝袜激情在线| 亚洲欧美91√| 少妇久久久| 久久亚洲AV无码专区国产精品| 黄片不用下载在线观看| 91久久久久久久久久久| 99热这里只有是精品10| 少妇色欲综合网2| 后入合集| 国产精品久久久久久久黄无码 | 青青草操逼逼视频| 激情亚洲天堂| 九九五月天| 97免费视频在线观看| 日本狂喷奶水在线播放212| 变态乱伦伪娘灌肠一区二区| 我要看免费韩日黄片| 人人操av| 精品在线78| 白丝被操91| 96久久精品一二三区色欲| 中文字幕二区日韩天堂| 怡红院成人av| 亚洲熟女av中文字幕| 性久久久| 国产激情综合五月久久| 伊人九九九| 激情五月天中文字幕色| 97激情97激情| 大肉棒导航| 欧美亚洲涩涩| 人人澡人人澡人人| 第一高清av中文字幕| 超碰97精品在线| 国产隔壁老王影院在线| 看日韩黄片| 69久久久久久久久久久久久| 日本久久女同性恋视频| 亚洲精品欧洲精品| 亚洲综合图色在线| 午夜福利一区二区三区四区五区色婷婷| 中文字幕久久精品一区| 性爱av网站| 九九色色| 国产做?爰片久久毛片?片美国| 精品九九九九九| 五月激情综合网| 激情视频一二三| 久久精品久| 亚卅熟女乱色| 91在线观看,天天综合| 亚洲?V无码专区在线电影| 亚洲成人网站在线观看| 风骚少妇视频中文字幕| 久久性爱视频99| 中文字幕在线观看AV| 蜜臀99久久国产| 国产精品久久久久亚洲av| 美国久久一二三四| 欧美αv.com| 少妇天堂网络| 99热99在线播放激情| 学生妹天天看| 国产99久久99热这里只有精品15| 欧洲站一级二级三级h| 色一色综合网| 日韩久射综合| 蜜臀99999| 亚洲欧洲成人在线电影| 欧洲亚洲人妻无码中字久久三区四区| 丰满美女一级毛片在线播放| 制服中出中文人人精品| 综合五月天| 国产精品一区在线播放| 加勒比99999| 天欧美在线| 亚洲日韩在线a不卡99精品| 美女的肌被草喷水视频| 91操人| 日韩亚洲中文字幕在线| 男人天堂无码| 97这里都是精品| a片偷拍视频| 97一区二区三区视频| 日本三级A片网站com| 精品国产少妇高潮视频| 日韩免费高清大片在线| 国产欧美日产一区二区三区 - 国产欧美日 | 日本中文熟女视频| 精彩久久中文| 夜夜肏2021| 伊人国产成人av网站| 亚洲男人天堂2012| 欧美性猛交美女自慰91| 狠狠色伊人亚洲综合网站色| 丝袜美腿丝袜| 亚洲不卡av在线| 色av中文字幕| 手机在线视频国内精品| 日韩资源网| 插入综合网| 欧美在线永久天堂| av网站在线看| 亚洲天堂久久| 超碰成人公开| 亚洲成人一二三区| 日本人妻伦在线中文字幕| 久久久国产三级黄色片| 国产农村妇女毛片精品久久| 国产自啪精品视频网站黑丝| 少妇久久久久久| 综合av影片| 色网站导航大全| 人妻少妇久久中文| 禁止观看美女黄| 亚洲精品aa久久伊人| 97中文字幕一区| 蜜臀在线免费观看在线免费观看| 亚洲男人的天堂亚洲| 夜夜草天天| 日本布卡一区二三区| 亚洲视频,小说| 俺去也婷婷| 欧美日韩国产三级黄色| 欧美亚洲一级在线观看| 久久的免费性爱视频| 女人香蕉久久毛毛片精品| 亚洲视频一二区| 91丝袜美女国产| 久久久久久久国产a∨| 性久久久| 午夜a成v人电影| 96国产污污污丝袜| 黄色不卡视频| 秋霞一区二区三区四区五区六区七区| 免费看美国人人爽,人人操| 午夜福利免费福利视频| 丰满少妇乱子伦精品无| av日韩国产一区二区| 青娱乐老司机视频| 欧美狠狠干| 超碰95| 草久在线| 久久精品国产亚洲粉嫩| 91bbbbbb| 毛片久久| 家庭乱伦国产精品| 国产精品久久久久久久久久梁医生| 国产一二三福利视频网| 爽 好舒服 无码刺激久久| 丁香五月天激情综合| 中文字幕丝袜国产第一页不卡| 搡老熟女免费视频 | a啊啊啊啊啊啊啊啊一区二区| 亚洲AV无码久久精品蜜桃小说| 国产亚洲色婷婷久久99精品91葵花宝典| 香蕉久久精品| 静品嫩模一区二区| 伊人久久大香大香线蕉中文 | 69精品人人人人| 深田咏美亚洲精品福利社| 另类 日韩 熟女| 影音先锋中文字幕日本好一区二区| 唐山老熟妇露脸啪啪叫| 9999免费精彩视频| 麻豆影音天美视频| 亚洲性感丝袜诱惑在线观看| 天天综合网合集91| 大香蕉手机在线| 超碰色大香蕉| 岛国黄片网站| 91爆操视频| av凤凰久久久| 天天影视综合网欧美精品| 日本九九久久99播| 中国熟女91| 亚洲毛片久久| 91操人| 91九九| 熟妇熟女视频一区二区三区| 一本大道综合伊人精品热热| 伊人久日| av大香蕉| 精品乱码久久久久| 国产日韩区| 五月天伊人| 日韩精品人妻一区二区| 97国产成人精品免费视频| 91色综合| 亚洲av影院在线观看| 日韩啪啪啪啪啪| 97色97好| 老女人综合| 国产精品日本无码A片| 超碰97人人cao| 思思热影视| 久久久久久夜夜夜夜夜| 国产精品久久久久无码A√| 日本免费一级AAA大片器| 蜜臀久久一区二区| 麻豆福利视频导航| 日韩无码视频黄色| 校园春色综合香蕉| 亚洲精品1区| 青青草原香蕉日本Ap| av激情亚洲五月天| 色婷婷综合网站| 日本999精品视频| 久久久青青草| 免费综合亚洲中文| 国产不卡中文字幕免费avi| 欧美色网络| 亚洲精品影视老司机| 少妇毛片久久| 视频不卡中文字幕| 玖玖婷婷五月天| 欲射影视| 国内精品久久人妻性色av| 五月天伊人| 97天天插| 色情乱伦AV| 色网综合网| 国产午夜精品理论片a大结局| 岛国精品视频在线观看| 清纯唯美第一页| 黄色AAAAA欧美| 91jk色拍| 爱逼综合| 国产夜夜操| 9118禁| 91丨九色丨大屁股| 成人久久久精品| 999亚洲国产视频| 超碰碰小说97| 中文字幕99999| 久久AV无码网址| 人人喜人人妻| 99热在线播放| 亚洲欧美精品一区天堂久久 | 欧美亚洲色的图| 91社操逼| 99re在线视频这里只有精品| 韩国一级婬片A片无码天美| 麻豆天美国美国产AV| 亚洲黄色电影| 亚洲综合春色| 乱操乱伦AV| 九九九九欧美| 欧美性爱第一区| 91丝袜美女| 狠狠操使劲操| 超碰久久精品| 在线不卡视频| 国产馆| 成人资源中文字幕在线观看天天| 国产福利合集| 操淫穴亚洲五月丁香| 日本一本道A级黄色毛片试看60分钟| 蜜桃精品视频一区| 99视频精品| 91伊人大香蕉| 97AV爱| 亚洲精品天堂久久A∨51成人漫| 91n欧美| 99精品久久久久久久婷婷| 欧美 传媒 麻豆 日韩 偷拍| 91少妇香蕉久久精品| 天天性射网| 9久热| 97在线视频观看| 日韩钢筋无码高清啾啾啾| 一本一道vs波多野结衣| 96麻豆精品一区二区三区| 人人手机欧洲亚洲国产人妻| 无码天天操| 99在线精品观看视频中文| 伊人亚洲国产一成人久久精品,久久| 2017,超碰| 日本三级日本三级三级人妇四虎| 美女写真| yw尤物av无码点击进入麻豆| 超碰一区二区| 香蕉一区二区三区在线视频| 性爱综合网| 日韩欧美性吧婷婷乱伦大香蕉| 97网址97| 一区二区三区四区五区高清无码永久视频| 一区在线观看中文字幕| 久久久99免费| 97视频在线免费观看| 中文字幕视频免费| 欧美日韩国第一区| 色婷婷五月天| 私人尤物在线精品不卡| 色拍偷亚洲| 91爱综合| 久久人妻办公室视频| 日韩人妻无码不卡网站| 欧美激情久久久久| 三上制服丝AV| 91扒丝袜综合在线| 五月婷婷综合在线| 一级A啪啪啪啪| AV在线性爱| 色激情综合网站| 外国免费性情大片| 亚洲欧美爆| 亚洲精品男人的天堂| 国产亚洲精品av一区| www国产无码| 果冻传媒A片麻豆熟妇人妻| 日日日大屁股骚女人精品| 精品人妻一区二区免费蜜桃| 久久理论字幕视频| 天美国产三级传媒| 久久久久日本视| 久久精品小视频| 午夜色婷婷| 亚洲各类熟们中文字幕| 中文字幕狠狠玩| 国产日韩区| 国产精品福利视频播放| 伊人网青青| 久久精品熟女亚洲AV麻豆软件| 青娱乐福利99| 亚洲s色图| 长长久久88视频| 一级性爱视频免费观看| 99综合视频| 美女在线H91| 免费福利视频中文字幕| 乱伦一区二区三区‘| 日韩精品中文字幕人妻| 亚洲无码视频免费在线观看网址!| 亚洲综合夜色| 97超碰国产亚洲精品| AV色五月天| 欧美精品亚洲精品日韩传电影| wwe 天天干.com| 久操在97| 天天操福利视频综合网站| 夜夜春夜夜操| 久久神马| 国产综合在线视频网站| 99久久久er直播网址| 亚洲Av无码成人精品国产| 天天操天天干一区二区 | 色色色色色色色色色色色色色色综合| 日产国产精品中文久久婷婷| 国偷自 一区二区| 日1区2区3区2020| 97欧美资源| 亚洲色图片区| 综合久久久久久久久91| 日韩综合无码一区久久92| 中文字幕五月婷婷免费| 久热9| 任我爽视频在线观看| 麻豆一区二区三区精品| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 一级性爱视频免费观看| 国产精品激情久久久久久久| 超碰99在线观看| 中文字幕在线第二页| 日本高清电影欧美色图| 久久亚码| 搡老熟女免费视频| 国产这里只有精品| 久久久99999久网站| 日韩人妻无码不卡网站| 另类小说综合网| 色欲三区| 人妻少妇蜜桃视频欧美一区| 91少妇香蕉久久精品| www亚洲欧美| 欧美精品日韩久久久九| 欧美日韩岛国大片在线观看| 嫩草 人人网精品| 欧美少妇高潮| 亚洲午夜福利视频| 亚洲人成网www| 天天日天天操天天射河南省| 国产一区二区a毛片| 五月天开心网| 欧美伦乱| 老熟妇一区二区三区…| 国产欧美美女免费观看视频| 国产高清在线自在拍69| 97亚洲欧美| 日韩亚洲国产视频| 福利风月五月天影院| 天天影视综合色| 一级@啪啪视频| 亚洲不卡AV在线| 国产精品久久久午夜夜伦鲁鲁| 富女玩鸭子一级毛片| 国产激情视频在线观看| 黑人干亚洲| 亚洲丝袜诱惑| 六九九九| 丰满熟女一区二区三区在线播放| 中文字幕一区二区三区视频播放| 欧美九九爱| 中文欧丝袜诱惑| 九九精品99| 5252色欧美在线| 17c嫩草51久久91嫩草| 五月婷婷丁香六月| 日韩在线电影| 日本91白丝| 97国产伦理| 放黄片放3级黄片没穿衣服| 成年人三级黄色片视频| 日本123区操B视频| 亚洲精品久久一区二区三区蜜桃臀| 大香蕉2017| 免费超碰97在线观看| 日日夜夜骚| 亚洲AV成人精品网站在AV| 亚洲精品819| 久久精品一区二区一8| 亚洲女人毛茸茸91| 欧美97色| 亚洲国产一区二区三区在线| 2020久久免费视频| 人人操av| 午夜电影在线观看无码专区| 青青草原av| 日韩AV一区二区三区四四| 亚洲激情在线| 91 国产丝袜在线放观看| 国产精品亚洲色婷婷久久久| 九一国产精品| 丰满人妻一区二区三区| 九九综合九九综合| 欧美视频激情久久久久久| 乱伦图av| 中文字幕国产| 欧美五区| 久草福利在线资源站| 欧洲综合色| 婷婷伊人一区| 亚洲黄色网址视频| 无码不卡亚洲成?人片| 熟妇视频一区二区三区在线| 射 色综合| 插入逼91| 久草电影网| 99国内精品| 亚洲最新a在线观看| 丰满人妻一区二区三区免费| 日日橹狠狠爱欧美超碰| 96久久精品一二三区色欲| 一本久道久久综合狠狠爱一密臀精| 日韩天堂av电影在线观看| 99re公开精品免费视频| 亚洲人综合| 黄片无码在线制服| 收看日本人日bb| 亚洲精品天天影视综合网 | 女人高潮抽搐喷水视频网站| 国产综合色精品在线观看| 超碰无码五月97| 国产精品老熟女一区二区| 91亚州| 青青操视频在线| 97香焦色区| 操比国产| 国产区91柔拿会所技师| 日韩欧美~中文字| 自拍欧美| 色狠狠综合| 伊人国产成人av网站| 日本高清视频在线观看黄已三辽| 中美日韩毛片| 极品极品色影院| 99在线免费公开视频| 九九热只有精品| 精品一区二区三区四区外站| 九九自拍伦理| 在线97在线| 色av中文字| 亚洲,欧美,春色,另类| 国产精品久久伊人| 在线观看AV片| 天天摸夜夜添无码小视频| 日韩有码 一区二区三区| 久久 精品| 96一区二区三区| 国产区在线| 999九九九九国产动| 亚洲有码第一页| 欧美色自拍| 热久久99999| 密臀在线免费观看| 91夜色chaopeng| 啊啊啊啊啊好大好舒服想要| 天天综合香 ld视频| 91在线页| 国产精品久久发布| 操香逼| 天天天天天天天天综合| 亚洲的天堂网| 久久久久久免费电影| 97欧美色综合| 天天肏夜夜肏| 性综合网| 99视频这有这里有精品| 国产一区二区a毛片| 九九探花视频在线观看| 亚洲AV无码成人精品久久| av资源在线观看少妇| 亚洲色图久久精品蜜| 台湾佬激情综合| 色好看av| 屁股久久久久久久久| 久久精品操| 久久青青草在线视频| 香蕉欧美| 操美女高潮抽搐白浆| 日本大片日本一区二区免费高清| 91男女啊啊啊| 劲爆欧美人妖三区91| 黑丝制服中文字幕| 99久久99久久免费精品蜜臀| 亚洲一区中文精品| 国产综合永久精品日韩鬼片| 日韩三级一区| wwe 天天干.com| 久久久成人免费av电影| 东京热大香蕉| 一类无码操逼视频| 六六久久日韩不卡| 狠综合网| 精品人妻一区二区三区鲁大师| 人人操 欧美| 日韩欧美国产高清视频| 久草精品热视| 色网亚洲人| 日本性爱视频一级| 五月天激情小说| 日韩精品人妻中文字幕久久久| 色悠久久久av| 肏逼视频日本| 国产精品秘 福利姬在线观看| 草b在线| 久久久性爱| 中国一级特黄大片护士| 992这里有精品| 国产风韵犹存熟妇三区| 久久精品一区二区一8| 欧亚性爱啪啪| 欧美猛交黑寡妇中文字幕| 超碰色美女| 逼操网站| 中文字幕亚洲欧美在线不卡| 婷婷20月天青娱乐| 99热99在线播放激情| 久久侵犯人妻爽爽爽| 国产99999久久精品| 婷婷婷婷婷婷久久久久| 亚洲成人一区二区精品| 欧美熟妇操操视频| 大象AV在线| 日本超碰在线国产一区| 国内毛片四区| 国产精品熟女丝袜一区二区| 欧美色日本| 日本国产亚洲一区在线观看| 日本 欧美 亚中文字幕| 天天干18禁| 超碰在线国产| 五月天欧美色图| 欧美东京热精品A∨| 97久久免费| 91视频伊人| 你草精品在线视频| 亚洲AV成人精品网站在AV| 麻豆天美国美国产| 大学生美女口爆| 大胆91| 四虎在线观看网站| 操逼逼福利视频| 日日干男人的天堂| 91在线超高颜值国产| 人人澡人人弄| 亚洲综合另类小说色区亚洲成av人片在www | 天堂中文日本在线观看| 大香蕉欧美国产日韩高潮| 亚洲精品国产无码高清| 亚洲免费97免费| 国内亚洲精彩视频在线| k频道色撸撸| 亚洲制服欧美另类内射| 亚洲自拍青操视频| AV 少妇 人妻 偷拍| 精品在线蜜臀| 中美日韩毛片| 99国产在线 精品 视频| 超碰午夜| 岛国精品视频在线观看| 亚洲欧美综合| 日韩av色图综合| 日日噜噜夜夜狠狠视频无| 一区,二区,三区视频| 久久精品国产亚洲AV无码做| 5252色欧美在线男人的天堂| 五月天婷婷综合网| 国产又黄又粗又猛大片| 久久久久斤小| 99热网站| 日本孕妇一区二区视频操逼免费看 | 97爱免费插| 欧美的性爱网站免费| 香蕉免费一区二区三区不读| 操人91| 99久久无码| 99国产在线绯色一区| 青娱乐久久艹| 97在线观看免费视频| 97爱b| 色婷五月| 日韩中文字幕视频| 黑人性暴力毛片| 超碰久久性爱| 园内精品自拍视频在线播放| 大香蕉狠狠爱| 久久最新视频免费观看| 日本免费亚洲欧美| 蜜乳AV.COM| 国内外激情在线| 久久色激情一区二区三区| 欧美强奸乱| 91精品国产一区三一| 久久深夜无码| 丝袜AV一二三区| 日本天天操| 大屁股熟女一区二区三区| 日本一区二区三区精品| 一级免费啪啪片| 国产成人精品必看| 久久久久久十| 91国内外在线| 香蕉久久精品| 色婷婷五月天| 久久欧美性爱视频| 天天操人人操狠狠插| 日韩91网| 亚洲十八禁止| 97视频在线观看高清资源| 欧美十八禁在线看| av网页一区二区三区| 黄色香蕉视频网站一区| 水滴偷拍| 天躁夜夜躁2021| 操淫穴亚洲五月丁香 | 久久精品无码熟妇一区二区三区视频导航| 精品91摸| 中文字幕一区av| 日本中文字幕在线视频| 欧美日韩一区二区三区四区蜜桃| 在线无码网站| 日韩性爱小视频在线观看| 超碰夫妻97| 厕所偷拍在线| 亚洲精品一区二区三区新线路| 亚洲有码 欧美精品| 超碰在线97国产| 好吊色在线观看| 欧美色自拍| 久久久18禁| 东北女人被操| 色爱综合网欧美| 91精品黄在线观看| 欧美黄色片AAAAA| 人人干人人操人人..com| 欧美一区二区三区蜜桃| 日韩性爱毛片操骚逼| 欧美日韩国产成人高清| 粉嫩av在线| 亚洲综合九九| 97视频免费| 久这精品中文在线观看视频| 超碰久久.com| 亚洲日韩电影| 精品人妻一区二区三区在线视频不卡| 中文字幕视频在线观看| 久操免费观看| 精品久久久久久中文字幕视频免费| 国产成人久久精品蜜臀| 秋霞色色影院| 欧美一区二区三区互相| ..日韩av毛片精品久久久| 99性爱在线观看| 亚洲av无线观看| 激情综合五月婷婷| 国产青一二三| 强奸熟女一区二区三区| 中出人妻中文字幕91在线| 97在线日韩中文字幕| 少妇熟女一区二区三区| 97干在线| 欧美久久人人网| 福利在线黄片| 天天综合91在线| 少妇三P| 91精品又粗又猛又爽| 国产久久天堂资源| av黄图片在线观看| 天天色,天天干,天天干| 伊人久久婷婷| 中文字幕二区日韩天堂 | 校园春色欧美色图| 好舒服视频| 国产精品一区二区三区在线| 蜜臀久久99精品久久久久| 成人一级性爱| 无遮挡h肉动漫在线观看| 亚洲色图超碰在线| 成人黄页| 精品黄色电影| 日韩乱伦视频| 成人精品电影| 91伊人久久在线| 欧美v日韩v亚洲v最新在线| 国产网红精品| 黄页18禁| 一级免费精品| 天天视频黄| 婷婷久久五月天| 99国产精品久久久久久久成人热| 抽插一区二区视频| 成年人黄色视频免费| 明星性猛交ⅹxxx乱大交| 90后性网国产欧美| 久久超碰、| 天天干18禁| 91成人久久| WWW黄片COM| 久久婷婷亚洲欧| 亚州综合色| 久热9| 91影视亚洲| 天天综合网91| 精品人人插人人操| 97色妞| 色哟哟 日韩精品| 强免费黄色网址| 国产成人精品午夜福利| 成人国产视频在线观看| 2018色综合天天操| 97视频在线观看网站| 小视频国产| 国产农村妇女精品一二区| 香蕉精品二区二区| 91精品无码人妻系列| 欧美72网页| 试看60秒 爽| 大香蕉碰| 俞拍久久国应视频| 精品国产精品一区二区| 综合性视频99| 日韩中文字幕人妻视频| 国产乱弄免费在线视频。 | 亚洲综合中文字幕有码| 中文字幕一二三av| 91碰超| 亚洲瓯美色图| 伊人国产成人av网站| 麻豆区久久久久亚| 日本一卡二区在线| 2021久久国产综合精品青草| 天天摸天天舔天天操| 午夜a成v人电影| 99啪啪| 免费啪啪av| 美女t无毒不卡不卡| 人人妻人人爽| 牛黄色久午久| 超碰 欧美| 性爱综合网| 99热一区二区三区四区| av网页一区二区三区| 亚洲九九爱| 免费A V在线播放| 96国产精品| 久草大| 91成人无码| 又黑又大又粗 | 美日韩男女操屄视频| 97操B| 日韩一卡二卡三卡| 日韩精品.久久精品.AV女优.天美传媒| 91A欧美电影网站| 日韩人体偷拍| 秋霞一集毛片观看| 综合av影片| 熟女突然公开看18禁影片| 久久蜜桃一区二区| 嗯啊免费视频| 在线中文字幕| 欧美综合在线第一页| 丁香五月天激情网站| 美女久久久久久久久久久| 91neishe| 尤物黄色在线观看网站| 丝袜狠狠草尤物 91| 日韩97视频!在线| 久久婷婷一区二| 曰本91情色| 欧洲亚洲天堂精品| 边做饭边操逼逼| 久久久久久久久久久久欧美日| 91在线精品| TS人妖另类精品视频系列| 日本东京热大香蕉a片| 91黑人无码激情在线| 青草一区二区| 欧美美女后入| av天天在线观看| 黄片无码在线制服| 东京热天堂网| 97欧美精品综合| 国产超碰| 国产成人综合网| 99999久久精| 日韩精品在线视频在线观看| 人妻激情视频| 国产在线视频二区| 精品在线观看视频在线| 67194无码不卡| 九九九九一区| 中文精品一区二去| 天堂av2019| 成年人免费观看网站| 久久婷婷苹果| 99re这里只有精品3| 在线性黄高清免费视频| 国产Av超碰| 懂色Av| 日韩强奸av| 四色永久成人网站| a片偷拍视频| 欧美大的香蕉有线电视视频| 欧美第一页性| 欧美系列在线一区二区| 欧美人体性爱互联网第一页婷婷日本| 97超碰人操| 中 文字幕一区二区三四 五 区日 日 骚| 国产18精品亚洲精品| 日本爽爽爽爽爽爽免费视频| 加勒比大香蕉视频在线| 日韩欧美亚洲一区二区三区影院| 夜夜爽夜夜摸夜夜操免费视频| 亚洲最大黄网| 91xingse| 99热这里都是精品| 超碰人人干| 丁香六月东京热| 天天综合97| 亚洲国产精品无石码久久| 久久激情视频| 大香蕉日韩欧美| 欧美最大综合网| 亚洲资源网| 超碰天天操你比| 亚州久久9| 亚洲精品欧美专业| 刺激精品视频| 亚洲精品色| 少妇人妻精品| 亚洲男人的天堂一区二区| 亚洲天堂性爱| 午夜福利久久久噜久噜久久综合| 91亚·色| 国产欧美一区二区| 色狠人在线99| 91丝袜激情在线| 无码人妻精品一区二区三区九九| 综合网欧| 日韩欧美天天爽爽爽天天爽爽| av麻豆啪啪| 国产SV一线| 日日A∨| 国产欧美一区二区| 亚洲美女30b| 人妻少妇色综合| 精品二区三四区五电影 | 日本一区二区电影网站| 另类av天堂| 色色综合97| 天天日骚逼熟女| 果冻传媒A片麻豆熟妇人妻| 久久69| 丁香五六月啪啪| 亚洲 一区二区 自拍| av无码精品久久久久| 99久久网站| 天美传媒国产原创中文字幕亚洲欧美另类| 欧美日韩免费专区在线| 男人的天堂欧美| 蜜臀无码一区二区| 欧美色交| 久久久精品电影| 天堂无码精品国产久| 国产成人网站在线观看| 国产精品久久久亚洲一区| 久久久久久久国产| 无码九九| 日韩操啪| 蜜乳av一区二区三区| 欧美,亚洲,日韩,v,天堂,手机在线观看| WWW操逼| 校园春色五月天| 色爱亚洲| 麻豆一区在线| 综合熟女| 久草在| 伊人网在线点播| 日韩成年人性爱视频| 精品毛片av一区二区| 强奸乱亚洲| 色综合中文字幕不卡| 免费国产| 少妇综合| 综合自拍| 91偷拍欧美亚洲| 高清无码91| 日韩av无码网站| 亚洲精品美女久久久久久久久| 超碰超碰欧美| 日韩成人人妻网站| 久久久新亚洲AV| 99久在线精品99re8热| 自拍盗摄一区| 啊啊啊啊免费视频| 日本人妻伦在线中文字幕| 69精品人人人人| 伦理弟一页| 久久夜夜| 成人av免费观看| 91美女国产在线| 中文字幕精品探花视频| 九月婷婷久久| 91是天天| 欧美国产婷婷久久| 国产高清精品一区二区三区毛片| 免费黄色片子| 亚洲自拍青操视频| 精品人妻一区二区三区四区石在线| 欧洲色| 骚日日av| 91成人精品在线播放| 高树玛利亚无码流出| 精品久9| 日韩不卡a级视频专区| 超碰免费欧美7| 亚洲成人精品在线一区| 视频二区美腿丝袜制服人妻欧美| 91日日夜夜| 国模不卡| 国产成人主播| 国产操伦| 床上啊啊啊一区二区三区| 91精品国| 久草视频在线视频在线视频在线观看| 欧美日韩人人精品| 日韩欧美性爱电影在线观看| 爱射综合| 久久久久久久久久9| 99久久99九九99九九九| 久久久无码精品人妻二区| 乱欲一区二区| 国产日产欧产美韩系列麻豆免费| 91在线超高颜值国产| 大香蕉啪啪啪啪在线| 国产又黄又爽又刺激久久久久久| 日本999精品视频| 蜜臀久久99精品久久久电影| 五月天啪啪| 精品午夜福利导航| 久久久久久久久久久97| 高清无码久操视频| 精品99999久久久久久| 中英熟女操女| 97内射偷拍| 国产精品久久久久无码A√| 玖玖爱一区在线| 久久亚洲精品成人av| 午夜呻吟欧美| 国产一级特黄大片处女| 国产人妻精品一区二区三区秋霞| 久久男人精品| av橘色网站| 日本精品第一视频在'| 日韩一级二级三级| 亚洲最大91网| 强奸乱伦AV网站| 狼人综合婷婷激情四射| 国产日韩精品无码去免费专区国产| 色综合超碰超| 亚洲欧美日韩精品久| 熟女精品日韩一区二区三区 | 天堂射| 国产v片在线免费观看| 亚洲天堂另类美腿| 八戒午夜福利理论片| 任我爽视频在线观看| 国产一区二区三区白丝| 97视频在线观看网站| 99久久网站| 欧美亚洲自拍另类人妻| 少妇色综合| 97色碰| 黄色一区二区秘书性感| 少妇高潮九九九九九九九| 九九热免费国产视频婷婷伊人| 国产美女在线精品免费看| 人乳av| 日本中文字幕高跟| 国产日韩欧美亚洲精品95 | 91精品啪在线观看国产城中村| 噜噜噜亚洲精| 日本精品一区二区三| 欧美高清18A片| 成人三级片无码| 色婷婷基地| 裸模AV女优| 久久男人的天堂| 五月天玖玖资源站| 99啪啪视频| 欧美极品少妇交| 91第一页| 88xx成人精品视频| 妇女性内射冈站HDWWWCOM| 夜夜黄| 天天爽天天爽| 欧美久久草熟女| 中文一区二区| 操迟操逼在巾线Fre看| 亚洲少妇色图自慰直播| 99激情视频| 欧美超碰在线| 91九久| 亚洲色图欧美一区二区不卡| 九月丁香| 青青在线视频日韩欧美| 久草网站免费在线观看| 大香蕉97久久| 美女黄色91| 黄片免费看黄片免费看| 影音先锋一区二区在线资源| 操逼操2| 另类亚洲图色| 超碰97国产欧美| 五月婷婷丁香中文字幕| 久噜噜| 另类欧美色| 99九九精品| 在线 欧美 亚洲| 精品无码欧美三级| 啊好大好舒服| 色综合天天| 搡老女人老91妇女老熟女| 夜夜操91744565| 午夜福利精品| 色悠久久久av| 交换娇妻呻吟声不停中文字幕| 久久久婷| 夜夜中出国产| 欧美成人A√在线一区二区| 99性爱视频| 色呦色呦色精品| 欧美久久人体| 五月天激情小说| 亚洲高清视频在线免费观看| 亚洲AV资源| 秋霞欧美性爰视频| 秋霞一级A片黄色视频| 99夜夜操| 91美女高潮| 成年男人的天堂| 五月天偷拍| 欧美大香蕉专区网| 黄片qw|