99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

AI Agent驅(qū)動(dòng)Unity編譯與測(cè)試:從批處理到自動(dòng)化閉環(huán)

AI Agent驅(qū)動(dòng)Unity編譯與測(cè)試:從批處理到自動(dòng)化閉環(huán) 早兩個(gè)月我還在干一件特別煩人的事同事丟給我一個(gè) PR說改了一處渲染相關(guān)的代碼讓我跑一下場(chǎng)景、編一下包、看下 Git 記錄里提到的那個(gè)報(bào)錯(cuò)還存不存在。我打開 Unity盯著進(jìn)度條轉(zhuǎn)了三分鐘切回編輯器敲兩個(gè)命令再切回來發(fā)現(xiàn)編譯報(bào)錯(cuò)被卡在同一個(gè)地方于是繼續(xù)改、繼續(xù)等。一次次來回切窗口一天里至少有一個(gè)小時(shí)是純浪費(fèi)。后來我決定把這條鏈路徹底交給 AI Agent讓它看日志、跑編譯、執(zhí)行測(cè)試然后把結(jié)果整理成一份清晰的報(bào)告回給我。折騰完這套工具鏈之后我的日常變成“給 Agent 發(fā)一句任務(wù)它自己去開 Unity、編譯、跑 EditMode 測(cè)試、抓異常和錯(cuò)誤日志最后把失敗原因定位到具體文件和行號(hào)”。這篇文章就是這次改造的完整實(shí)錄從設(shè)計(jì)思路、批處理腳本寫法到日志解析、Agent 任務(wù)定義再到踩過的幾個(gè)坑全部攤開來講。先說清楚這套東西適合誰(shuí)你在用 Unity 做中大型項(xiàng)目、頻繁被構(gòu)建和測(cè)試打斷、想讓 AI Agent 在半自動(dòng)或全自動(dòng)場(chǎng)景里承擔(dān)編譯/測(cè)試工作或者你在搭 CI 但不想用一套很重的圖形化管道——這篇就是給你的。下面的內(nèi)容我用 Unity 2022.3 LTS 實(shí)測(cè)但思路在 Unity 2019 以上的版本基本都通用。1. 項(xiàng)目背景為什么我會(huì)嘗試讓 AI Agent 驅(qū)動(dòng) Unity 編譯與測(cè)試1.1 開發(fā)鏈路里最耗時(shí)的“人肉來回”做 Unity 項(xiàng)目的人應(yīng)該都有這個(gè)體會(huì)一次常規(guī)的“改代碼 - 回編輯器 - 等編譯 - 跑測(cè)試”循環(huán)真正花在思考和修改上的時(shí)間可能只有一半另一半全耗在等待和重復(fù)操作上。尤其是在渲染、熱更新、資源管線相關(guān)的項(xiàng)目里只要?jiǎng)拥揭粋€(gè)公共類Unity 的存量編譯時(shí)間和全量資源導(dǎo)入時(shí)間都會(huì)直線上升。我這邊最夸張的一次一次全量構(gòu)建加測(cè)試跑了將近十二分鐘而真正報(bào)錯(cuò)的位置是在第三分鐘就應(yīng)該暴露出來的。AI Agent 的價(jià)值恰好體現(xiàn)在這里它能做判斷、能調(diào)用工具、能讀日志但前提是你給它一個(gè)“可以控制的外部環(huán)境”。Unity 默認(rèn)是個(gè)圖形化交互工具Agent 沒法像人一樣去點(diǎn)編輯器界面里的按鈕。所以整個(gè)項(xiàng)目的第一步不是寫 Agent 邏輯而是把 Unity 編輯器改造成一個(gè)可以被命令行動(dòng)態(tài)調(diào)用的“后臺(tái)服務(wù)”。這件事本身并不復(fù)雜因?yàn)?Unity 官方很早就提供了批處理模式batch mode只是大部分項(xiàng)目把它用在 CI 構(gòu)建上很少為 AI 驅(qū)動(dòng)場(chǎng)景做針對(duì)性封裝。1.2 這一步到底“修”了什么從手動(dòng)到自動(dòng)的完整閉環(huán)我不太喜歡把這類項(xiàng)目描述成“做了一個(gè)平臺(tái)”或者“搭了一套系統(tǒng)”聽起來很宏大實(shí)際上做的事情非常聚焦把“人眼盯編譯結(jié)果、手點(diǎn)運(yùn)行按鈕、口頭總結(jié)問題”換成“Agent 讀退出碼、解析日志、按固定格式匯報(bào)”。這個(gè)轉(zhuǎn)換分成三層來理解第一層是接口層Unity 必須能接收外部指令也就是通過命令行參數(shù)傳入要執(zhí)行的方法名、目標(biāo)平臺(tái)、構(gòu)建路徑等信息。第二層是數(shù)據(jù)層Unity 執(zhí)行完任務(wù)后必須把結(jié)果落在文件里包括標(biāo)準(zhǔn)日志、結(jié)構(gòu)化錯(cuò)誤信息和測(cè)試報(bào)告不能只依賴人去看 Console 窗口。第三層是執(zhí)行層AI Agent 通過腳本調(diào)用 Unity 的可執(zhí)行文件拿到退出碼和輸出內(nèi)容再結(jié)合項(xiàng)目歷史信息定位問題、決定下一步動(dòng)作。這三層都打通之后Agent 就不再是“只能聊天的模型”而是真正嵌進(jìn)了 Unity 工具鏈里。我大概花了一個(gè)星期把所有腳本和 Agent 配置調(diào)通之后的每個(gè)工作日基本都在用這套流程穩(wěn)定性和效率都遠(yuǎn)超手動(dòng)操作。2. 工具鏈選型與方案設(shè)計(jì)2.1 核心思路把編輯器變成可編程的“命令行程序”Unity 的批處理模式理解起來很簡(jiǎn)單通過命令行指定-batchmode參數(shù)Unity 就以不帶圖形界面的方式啟動(dòng)執(zhí)行完指定方法后退出。配合-executeMethod指定一個(gè)靜態(tài)方法入口再用-quit讓編輯器在執(zhí)行完后自動(dòng)關(guān)閉這就是最精簡(jiǎn)的命令行調(diào)用方式。一個(gè)典型的調(diào)用命令長(zhǎng)這樣/Applications/Unity/Hub/Editor/2022.3.40f1/Unity.app/Contents/MacOS/Unity \ -batchmode \ -nographics \ -projectPath /path/to/your/unity/project \ -executeMethod BuildTools.PerformBuild \ -logFile /tmp/unity_build.log \ -quitWindows 下對(duì)應(yīng)的可執(zhí)行文件路徑類似C:\Program Files\Unity\Hub\Editor\2022.3.40f1\Editor\Unity.exe其他參數(shù)完全一樣。我把這個(gè)機(jī)制當(dāng)作整個(gè)工具鏈的“地基”。所有 Agent 與 Unity 的交互最終都?xì)w結(jié)為用合適的參數(shù)啟動(dòng) Unity 進(jìn)程等待它結(jié)束然后讀它留下的日志和報(bào)告文件。這個(gè)方案相比直接調(diào)用 Unity 內(nèi)部 API 的好處是解耦A(yù)gent 不需要理解 C# 或者 Unity 的對(duì)象生命周期它只需要管好進(jìn)程和文件。2.2 為什么不用現(xiàn)成 CI 或者 YAML 方案解決可能有人會(huì)問Jenkins、GitHub Actions、GitLab CI 都能跑 Unity 構(gòu)建為什么還要自己折騰一套我的回答是現(xiàn)成 CI 解決的是“定時(shí)構(gòu)建”和“人工觸發(fā)構(gòu)建”的問題但解決不了“讓 AI 根據(jù)上一次的結(jié)果動(dòng)態(tài)決定下一次怎么操作”的問題。CI 里的 Unity 構(gòu)建節(jié)點(diǎn)通常是固定流程拉代碼 - 構(gòu)建 - 收集產(chǎn)物。但 AI Agent 驅(qū)動(dòng)的場(chǎng)景是動(dòng)態(tài)的比如 Agent 看到編譯錯(cuò)誤后可能會(huì)先跑一次代碼分析腳本檢查某段 API 用法或者用正則從日志里抽出一串報(bào)錯(cuò)代碼去對(duì)比當(dāng)前分支上的改動(dòng)甚至直接嘗試修復(fù)代碼后再次觸發(fā)編譯直到通過或達(dá)到最大重試次數(shù)。這類“有上下文、有判斷、需要多輪交互”的流程YAML 寫起來非常別扭但用 Agent 加一組腳本工具卻非常自然。另外很多項(xiàng)目的 Unity 環(huán)境并不在 CI 機(jī)器上而是就在開發(fā)者本地。如果只為本地使用就部署一套 Jenkins 太重了。把 Unity 封裝成命令行工具再讓 Agent 通過 n8n、Python 腳本或者你喜歡的 Agent 框架來調(diào)用等于用最小的成本獲得了最大的靈活性后續(xù)想遷移到 CI 也完全兼容因?yàn)?CI 本來就支持執(zhí)行 shell 命令。2.3 整體鏈路設(shè)計(jì)Agent 如何“看到” Unity 的執(zhí)行結(jié)果整個(gè)鏈路我用文字描述一下Agent 收到任務(wù) - 調(diào)用一個(gè)封裝腳本unity_job.py- 腳本組裝 Unity 命令行參數(shù)并啟動(dòng) Unity 進(jìn)程 - Unity 執(zhí)行編譯或測(cè)試 - 寫入日志和 JSON 報(bào)告 - 進(jìn)程退出 - 腳本解析退出碼和報(bào)告 - 把摘要返回給 Agent - Agent 決定下一步動(dòng)作。這里最關(guān)鍵的不是啟動(dòng) Unity而是“如何讓結(jié)果可讀”。Unity 的日志文件是純文本但里面夾雜了資源導(dǎo)入信息、一堆 Warning 和 Assets 日志直接全量喂給 Agent 既浪費(fèi) token 又容易淹沒重點(diǎn)。所以我在封裝層做了日志規(guī)整把 Error、Exception、Failed 級(jí)別的行單獨(dú)抽出來再加上 Unity 的退出碼和測(cè)試報(bào)告匯總最終拼成一個(gè)結(jié)構(gòu)化的 JSON 塊給 Agent。這樣 Agent 拿到的不是海量原始文本而是一份“當(dāng)前構(gòu)建/測(cè)試的體檢報(bào)告”。3. 關(guān)鍵實(shí)操給 Unity 編輯器開出“命令行接口”3.1 批處理模式的三個(gè)核心參數(shù)batchmode、executeMethod、quit上面簡(jiǎn)單帶過了參數(shù)這里稍微展開一下因?yàn)檫@幾個(gè)參數(shù)組合起來有很多細(xì)節(jié)。-batchmode告訴 Unity 不彈任何對(duì)話框、不顯示圖形界面。沒有這個(gè)參數(shù)即便其他指令都對(duì)了Unity 還是會(huì)嘗試打開編輯器窗口加了之后所有 UI 交互都被禁止彈錯(cuò)誤對(duì)話框也會(huì)導(dǎo)致進(jìn)程掛住所以項(xiàng)目里如果有依賴彈窗的邏輯批處理模式下一定要提前處理掉。-executeMethod后面跟字符串是 Unity 要執(zhí)行的靜態(tài)方法入口。注意這個(gè)方法所在類要放進(jìn)Editor文件夾并且類本身不能是抽象的方法必須是public static。我習(xí)慣寫一個(gè)專門的BuildTools類把所有 Agent 能觸發(fā)的入口方法都放進(jìn)去而不是分散在多個(gè)類里這樣命令映射關(guān)系一目了然。-quit是執(zhí)行完-executeMethod后是否退出 Unity。如果方法內(nèi)部已經(jīng)調(diào)用了EditorApplication.Exit那-quit參數(shù)可以不加但考慮到萬(wàn)一方法執(zhí)行到中間拋異常加一個(gè)-quit通常更安全。這里有個(gè)很容易踩的坑如果-executeMethod指定方法拋了未捕獲異常Unity 默認(rèn)不會(huì)立刻退出而是會(huì)進(jìn)入異常狀態(tài)所以我的每個(gè)入口方法內(nèi)部都套了 try-catch并保證無(wú)論成功失敗都會(huì)走到EditorApplication.Exit(code)。3.2 編寫 Editor 腳本編譯、測(cè)試、包體構(gòu)建的入口我提供一份精簡(jiǎn)的BuildTools.cs作為參考它覆蓋了最常見的三類操作編譯檢查、EditMode 測(cè)試執(zhí)行、構(gòu)建 Android 包。// 放在 Assets/Editor/BuildTools.cs using System; using System.IO; using UnityEditor; using UnityEditor.TestTools.TestRunner.Api; using UnityEngine; public static class BuildTools { private static int _exitCode 0; public static void CompileAndExit() { RunWithGuard(() { var errors UnityEditor.Compilation.CompilationPipeline.GetLastCompilationErrors(); Debug.Log($[BuildTools] Compilation errors: {errors.Length}); if (errors.Length 0) { _exitCode 1; } }); } public static void RunEditModeTestsAndExit() { RunWithGuard(() { var api UnityEditor.TestTools.TestRunner.Api.ScriptableObject.CreateInstanceTestRunnerApi(); var filter new Filter { testMode TestMode.EditMode, testNames new[] { MyCompany.MyTests } }; api.Execute(new ExecutionSettings(filter)); // 注意這里為了演示簡(jiǎn)化了等待邏輯 }); } public static void PerformAndroidBuildAndExit() { RunWithGuard(() { var options new BuildPlayerOptions { scenes new[] { Assets/Scenes/Main.unity }, locationPathName Builds/Android/demo.apk, target BuildTarget.Android, options BuildOptions.None }; var report BuildPipeline.BuildPlayer(options); _exitCode report.summary.result UnityEditor.Build.Reporting.BuildResult.Succeeded ? 0 : 1; if (_exitCode ! 0) { foreach (var step in report.steps) { foreach (var msg in step.messages) { if (msg.type UnityEditor.Build.Reporting.LogType.Error || msg.type UnityEditor.Build.Reporting.LogType.Exception) { Debug.LogError($[BuildReport] {msg.content}); } } } } }); } private static void RunWithGuard(Action action) { try { action(); } catch (Exception e) { Debug.LogError($[BuildTools] Unhandled exception: {e}); _exitCode 1; } finally { EditorApplication.Exit(_exitCode); } } }這里面有幾個(gè)細(xì)節(jié)值得說明。CompileAndExit里的CompilationPipeline.GetLastCompilationErrors()是拿上一次編譯的結(jié)果它不會(huì)主動(dòng)觸發(fā)編譯。如果你的場(chǎng)景是“先拉新代碼需要強(qiáng)制編譯一次再拿結(jié)果”我建議先用AssetDatabase.Refresh()觸發(fā)一次資源刷新再調(diào)用一次編譯相關(guān)的 API確保編譯真的跑了。不同 Unity 版本對(duì)編譯 API 的封裝差別挺大實(shí)際項(xiàng)目里我更推薦直接調(diào)用BuildPipeline.BuildPlayer或者執(zhí)行測(cè)試因?yàn)樗鼈冊(cè)趦?nèi)部一定會(huì)觸發(fā)完整編譯結(jié)果更可靠。RunEditModeTestsAndExit這段代碼我只寫了執(zhí)行的部分沒有寫等待測(cè)試完成、收集結(jié)果的部分因?yàn)檫@一塊在不同項(xiàng)目里差異很大。如果只是想讓 Agent 能觸發(fā)測(cè)試并拿到結(jié)果最穩(wěn)妥的做法是用 Unity 官方文檔里推薦的-runTests -testPlatform EditMode -testResults參數(shù)它會(huì)把測(cè)試結(jié)果寫成 XML 文件后面解析起來很方便。/Applications/Unity/Hub/Editor/2022.3.40f1/Unity.app/Contents/MacOS/Unity \ -batchmode \ -projectPath /path/to/project \ -runTests \ -testPlatform EditMode \ -testResults /tmp/editmode_test_results.xml \ -logFile /tmp/unity_test.log \ -quitPerformAndroidBuildAndExit里的BuildPlayer返回值包含完整的分步報(bào)告我只抽出了錯(cuò)誤級(jí)別的信息實(shí)際項(xiàng)目里你也可以把每個(gè) step 的耗時(shí)寫入 JSON這樣 Agent 能感知到構(gòu)建瓶頸。另外locationPathName里的路徑如果是相對(duì)的是相對(duì)項(xiàng)目根目錄還是 Unity 安裝目錄版本之間行為不太一樣我建議直接用絕對(duì)路徑省得排查。3.3 處理日志與退出碼讓結(jié)果可以被程序消費(fèi)Unity 進(jìn)程退出以后第一手信息是退出碼。退出碼 0 一般表示“入口方法正常返回或主動(dòng)退出時(shí)傳入 0”退出碼 1 表示異?;蛭抑鲃?dòng)傳入的失敗標(biāo)記。但要注意Unity 的退出碼并不總是可靠有些批處理模式下自身崩潰也會(huì)返回非 0而且不同版本的 Unity 對(duì)EditorApplication.Exit傳入值的處理有細(xì)微差別。所以我的建議是不把退出碼當(dāng)作唯一裁決標(biāo)準(zhǔn)而是和日志文件里的錯(cuò)誤標(biāo)記結(jié)合起來判斷。日志文件通過-logFile指定后Unity 會(huì)把 Console 輸出重定向到該文件。但日志文件里不止有項(xiàng)目代碼的輸出還有大量 Unity 引擎自身的導(dǎo)入日志和加載信息。我在腳本里做了一層過濾把包含error CS、Error,Exception,Failed,Compilation failed,Assertion failed的行提取出來同時(shí)記錄出現(xiàn)的行號(hào)。這樣最終發(fā)給 Agent 的信息是類似下面的結(jié)構(gòu)化格式{ exit_code: 1, build_result: failed, error_count: 3, errors: [ { level: error, message: error CS0103: The name RenderPipelineManager does not exist in the current context, line: 42, file: Assets/Scripts/CustomPipeline.cs } ], test_summary: { total: 24, passed: 21, failed: 3 } }有了這個(gè) JSONAgent 就不需要去啃原始的 Unity 日志了。3.4 目錄約定和參數(shù)封裝統(tǒng)一所有調(diào)用的入口為了避免每個(gè) Agent 任務(wù)都拼一遍冗長(zhǎng)的命令行參數(shù)我寫了一個(gè)統(tǒng)一的unity_job.py把常見的操作封裝成了子命令。python unity_job.py compile --project /path/to/project python unity_job.py test --project /path/to/project --suite EditMode --filter MyCompany.MyTests python unity_job.py build --project /path/to/project --target Android --output /tmp/build.apk這個(gè)腳本要做的事情包括根據(jù) Unity Hub 安裝列表找到對(duì)應(yīng)版本的可執(zhí)行文件、拼接 Unity 命令行參數(shù)、啟動(dòng)子進(jìn)程、輪詢等待進(jìn)程結(jié)束、解析日志生成 JSON、最后把 JSON 寫到指定輸出路徑。工具腳本本身不承擔(dān)“思考”功能但它把 Agent 需要面對(duì)的命令面收窄到了幾個(gè)簡(jiǎn)短清晰的子命令上這對(duì)后續(xù)擴(kuò)展和維護(hù)都很關(guān)鍵。4. 接入 AI Agent把編譯結(jié)果變成可消費(fèi)的數(shù)據(jù)4.1 Agent 的任務(wù)定義與工具注冊(cè)我用的 Agent 框架支持自定義工具也就是給模型注冊(cè)一批“可以被調(diào)用的函數(shù)”模型會(huì)根據(jù)用戶指令選擇合適的工具來調(diào)用。為了讓它能正確做事我注冊(cè)了這些工具compile_project、run_editmode_tests、build_android、read_file、git_diff、git_status。每個(gè)工具的描述都寫得很具體比如“當(dāng)用戶提到編譯報(bào)錯(cuò)時(shí)先運(yùn)行 compile_project然后根據(jù)返回的 JSON 定位錯(cuò)誤文件”。工具描述看起來不起眼但在 Agent 場(chǎng)景里非常重要。模型是靠描述來決定調(diào)用哪個(gè)工具的描述模糊就可能導(dǎo)致它調(diào)用錯(cuò)誤的方法。我一開始把run_editmode_tests描述成“執(zhí)行測(cè)試”Agent 有時(shí)候會(huì)在編譯都不過的情況下先跑測(cè)試導(dǎo)致浪費(fèi)時(shí)間。后來我把描述改成“執(zhí)行 EditMode 測(cè)試通常應(yīng)在 compile_project 成功之后調(diào)用”準(zhǔn)確率立刻就上來了。任務(wù)定義上我提供給 Agent 的“出發(fā)點(diǎn)”通常是這樣一句話檢查當(dāng)前分支是否有編譯錯(cuò)誤如果有就定位到具體文件和行號(hào)并給出可能的修復(fù)建議如果編譯通過就跑一遍 EditMode 測(cè)試匯總失敗用例。Agent 能自己拆解這個(gè)任務(wù)先調(diào)用 git 工具看改動(dòng)再調(diào) compile拿到結(jié)果后判斷下一步。4.2 多輪反饋Agent 如何根據(jù)結(jié)果繼續(xù)操作這套流程里最關(guān)鍵的環(huán)節(jié)是“一次任務(wù)可能拆成多輪工具調(diào)用”。Agent 拿到 JSON 后會(huì)自己判斷退出碼是 1說明有編譯錯(cuò)誤然后把錯(cuò)誤信息、當(dāng)前分支的 git diff、相關(guān)文件內(nèi)容一起放進(jìn)上下文生成一份修復(fù)建議。在某些實(shí)驗(yàn)性場(chǎng)景里我甚至允許 Agent 直接生成補(bǔ)丁由人工審查后應(yīng)用。多輪反饋的穩(wěn)定性取決于你回傳的信息質(zhì)量。如果回傳的信息全是原始日志模型很容易被大量不相關(guān)的 Warning 干擾最終給出的結(jié)論也是“這個(gè)日志里有很多錯(cuò)誤建議檢查代碼”完全沒有指導(dǎo)價(jià)值。我把日志過濾和聚合邏輯放在 JSON 生成階段模型拿到的永遠(yuǎn)是一條條緊湊的問題摘要配合文件路徑和行號(hào)定位準(zhǔn)確度提升了非常多。4.3 腳本工具與 Agent 框架之間的適配層真正開發(fā)的時(shí)候你會(huì)發(fā)現(xiàn) Agent 框架往往希望工具函數(shù)返回字符串而我們的unity_job.py是把結(jié)果寫進(jìn)文件。所以中間需要一層適配工具函數(shù)先調(diào)用腳本并等進(jìn)程結(jié)束然后讀取腳本生成的 JSON 文件再把它轉(zhuǎn)成字符串返回給模型。def compile_project(project_path: str) - str: output_path os.path.join(tempfile.gettempdir(), unity_compile_result.json) subprocess.run( [python, unity_job.py, compile, --project, project_path, --json, output_path], checkFalse, timeout600 ) with open(output_path, r, encodingutf-8) as f: return f.read()這段適配層代碼看起來簡(jiǎn)單但要注意幾個(gè)細(xì)節(jié)超時(shí)必須給夠Unity 冷啟動(dòng)加編譯在大型項(xiàng)目里跑滿 10 分鐘很正常checkFalse不能省因?yàn)?Unity 編譯失敗時(shí)工具進(jìn)程會(huì)返回非 0但 Agent 需要的是 JSON 內(nèi)容而不是異常最后要把 JSON 內(nèi)容完整返回不要自己在工具函數(shù)里做截?cái)喾駝t模型會(huì)漏信息。4.4 我的 Agent 工作流里最實(shí)用的幾個(gè)“技能”我在實(shí)際使用中沉淀了幾個(gè)小而有效的技能分享出來技能一編譯結(jié)果歸類。把error CS分類成語(yǔ)法錯(cuò)誤、命名空間缺失、API 不匹配、程序集引用缺失等Agent 對(duì)每一類給出不同的處理策略。語(yǔ)法錯(cuò)誤直接定位文件行號(hào)API 不匹配去查項(xiàng)目里是否用過替代方案。技能二測(cè)試失敗用例摘要。把測(cè)試結(jié)果 XML 解析后對(duì)每個(gè)失敗用例生成“用例名 斷言信息 堆棧前五幀”的組合讓 Agent 能快速判斷是斷言寫錯(cuò)還是代碼回歸。技能三構(gòu)建產(chǎn)物變更統(tǒng)計(jì)。構(gòu)建完成后對(duì)比上一次 APK 的大小和文件列表如果差異異常大Agent 會(huì)主動(dòng)檢查是否誤打進(jìn)了多余的資源。技能四回合制重試邏輯。設(shè)定最大嘗試次數(shù)為 3Agent 每次修改后重新調(diào)用compile_project直到編譯通過或超限。這個(gè)重試邏輯非常適合讓 Agent 自己處理一些簡(jiǎn)單格式問題比如缺分號(hào)、少 using、拼寫錯(cuò)誤。這些技能看起來零散組合起來以后基本覆蓋了“提交代碼后所有自動(dòng)化驗(yàn)證”的日常需求。5. 常見問題與排查技巧實(shí)錄5.1 批處理模式下 License 和激活彈窗問題這是最容易遇到的坑。Windows 或 macOS 上如果 Unity Hub 沒有保持登錄狀態(tài)批處理模式啟動(dòng)時(shí)會(huì)彈 License 激活窗口但因?yàn)?batchmode禁用了 UI這個(gè)窗口可能會(huì)讓進(jìn)程一直掛住直到超時(shí)。后來我總結(jié)的排查路徑是先手動(dòng)在圖形界面打開一次項(xiàng)目確認(rèn) License 正常如果還不行檢查是否有舊版本 License 文件沖突CI 機(jī)器上則必須確保 Unity Hub 的賬號(hào)狀態(tài)可用。5.2 緩存導(dǎo)致“編譯通過了但測(cè)試跑的還是舊代碼”有一次 Agent 連續(xù)跑了三遍編譯都報(bào)同一個(gè)錯(cuò)誤但我手動(dòng)打開編輯器卻一切正常。最后發(fā)現(xiàn)是構(gòu)建目錄里殘留了舊的程序集Unity 在批處理模式下沒有做完全的資源刷新用了緩存里的結(jié)果。解決辦法是在每次執(zhí)行前顯式調(diào)用AssetDatabase.DeleteAsset(Library/)或者用-clean參數(shù)啟動(dòng)一次完整刷新。注意-clean非常慢建議只有在懷疑緩存不一致時(shí)才使用常規(guī)任務(wù)不要每次都加。5.3 測(cè)試執(zhí)行不完或者卡在第一個(gè)用例EditMode 測(cè)試在批處理模式下執(zhí)行時(shí)偶爾會(huì)遇到某個(gè)用例里有異步操作或者依賴了編輯器回調(diào)導(dǎo)致測(cè)試隊(duì)列卡住。我在實(shí)測(cè)中遇到過一個(gè)項(xiàng)目測(cè)試?yán)镎{(diào)用了AssetDatabase.SaveAssets()在批處理模式下會(huì)偶發(fā)死鎖整個(gè)進(jìn)程無(wú)響應(yīng)。臨時(shí)規(guī)避手段是給整個(gè)unity_job.py加一個(gè)超時(shí)時(shí)間超過就強(qiáng)制 kill 進(jìn)程并把“超時(shí)且無(wú)結(jié)果”作為失敗信息返回給 Agent讓它考慮跳過該用例或拆細(xì)測(cè)試套件。5.4 日志中文亂碼和編碼問題Windows 上 Unity 日志默認(rèn)可能是系統(tǒng)編碼直接用 UTF-8 讀取會(huì)出現(xiàn)亂碼Agent 拿到的錯(cuò)誤信息就不可讀。我處理的辦法是在unity_job.py里強(qiáng)制用errorsignore讀取日志并在解析前嘗試多種編碼比如先用 UTF-8失敗后用 GBK這樣至少在大多數(shù)中文項(xiàng)目里能正確抽取錯(cuò)誤信息。如果你是純英文項(xiàng)目這個(gè)問題基本不會(huì)遇到。5.5 常見問題速查表現(xiàn)象可能原因處理建議進(jìn)程啟動(dòng)后長(zhǎng)時(shí)間無(wú)輸出License 彈窗或編輯器等待確認(rèn)檢查 Hub 登錄狀態(tài)手動(dòng)打開一次項(xiàng)目退出碼非 0 但日志沒有 Error崩潰或被動(dòng)退出查看日志最后 50 行比對(duì)崩潰信息編譯失敗但 Agent 反復(fù)重試無(wú)改善緩存不一致或資源導(dǎo)入失敗追加-clean參數(shù)跑一次完整重建測(cè)試報(bào)告文件沒有生成測(cè)試執(zhí)行未完成或路徑無(wú)權(quán)限確保輸出路徑存在且可寫延長(zhǎng)超時(shí)時(shí)間Agent 定位的文件行號(hào)不對(duì)日志與當(dāng)前代碼版本不一致比對(duì) git diff確認(rèn)構(gòu)建前是否拉取最新代碼Windows 下中文日志亂碼編碼不匹配腳本讀取時(shí)按 GBK/UTF-8 順序嘗試解碼這個(gè)速查表我用 A4 紙打印貼在顯示器邊上遇到問題先掃一眼很多坑都可以秒定位。6. 落地之后這套工具鏈還能怎么擴(kuò)展6.1 讓我最滿意的三個(gè)實(shí)際效果這套工具鏈跑通之后最大的收益是“持續(xù)驗(yàn)證”的頻率變高了。以前我一天可能只做兩三次完整編譯加測(cè)試因?yàn)槭謩?dòng)操作太煩現(xiàn)在 Agent 每次收到我的一句“檢查一下當(dāng)前改動(dòng)”就會(huì)自動(dòng)跑一遍發(fā)現(xiàn)問題直接匯報(bào)。第二個(gè)收益是問題定位時(shí)間縮短了一大截以前要靠肉眼翻 Console現(xiàn)在 JSON 里直接有文件路徑、行號(hào)和錯(cuò)誤碼基本上拿到信息就能動(dòng)手修。第三個(gè)收益是夜間的自動(dòng)化構(gòu)建終于有了“匯報(bào)機(jī)制”Agent 構(gòu)建失敗后會(huì)把關(guān)鍵信息寫成摘要第二天早上我只花兩分鐘就能判斷是不是需要立刻處理。6.2 可以繼續(xù)往后做的幾個(gè)方向當(dāng)前這套方案還比較聚焦在“驗(yàn)證環(huán)節(jié)”往后可以往這幾個(gè)方向擴(kuò)展一是多平臺(tái)并行構(gòu)建利用 Agent 同時(shí)觸發(fā) Android、iOS、Windows 三個(gè)目標(biāo)平臺(tái)的構(gòu)建任務(wù)然后統(tǒng)一匯總結(jié)果二是與線上問題關(guān)聯(lián)把日志里的錯(cuò)誤哈希與在線跟蹤系統(tǒng)匹配讓 Agent 在編譯階段就提示“這個(gè)錯(cuò)誤可能和線上某個(gè) issue 相關(guān)”三是引入對(duì)資源管線的分析讓 Agent 在構(gòu)建后自動(dòng)檢查是否有冗余資源和明顯的體積異常四是在編輯器擴(kuò)展層面做更多能力開放比如讓 Agent 能修改 Player Settings、切換 Build Target、打開某個(gè)場(chǎng)景甚至執(zhí)行部分自動(dòng)化測(cè)試用例。這些方向每一條單拎出來都?jí)蛟賹懸黄诵牡鬃褪沁@篇文章里講的“批處理模式 結(jié)構(gòu)化報(bào)告 Agent 工具調(diào)用”三段式。底座穩(wěn)定了上層加什么能力都只是封裝的事。6.3 最后分享一個(gè)實(shí)際使用中的小技巧如果你剛開始嘗試我建議不要一上來就讓 Agent 全自動(dòng)修改代碼、重跑編譯、再改代碼。先用半自動(dòng)模式跑一周讓 Agent 只負(fù)責(zé)“編譯 測(cè)試 匯報(bào)”所有代碼修改仍然由你手動(dòng)完成。這個(gè)階段最大的價(jià)值是讓你觀察 Agent 對(duì)日志和錯(cuò)誤信息的理解是否準(zhǔn)確以及 JSON 里的信息是否足夠幫你定位問題。等你覺得匯報(bào)質(zhì)量穩(wěn)定了再逐步放開“生成修復(fù)建議”和“自動(dòng)打補(bǔ)丁”的能力。這比一步到位安全得多也不容易對(duì) Agent 失去信心。我現(xiàn)在每天的工作流基本就是寫幾段代碼發(fā)給 Agent 一句“檢查一下”然后繼續(xù)寫下一段Agent 會(huì)在后臺(tái)吭哧吭哧地跑 Unity、篩日志、匯報(bào)結(jié)果。偶爾遇到它拿不準(zhǔn)的問題我就打開它整理好的 JSON 看一眼補(bǔ)一兩個(gè)上下文信息讓它重試。這套流程讓我從一個(gè)被編輯器進(jìn)度條綁架的開發(fā)者變成了真正能把注意力放在代碼邏輯上的人。如果你也在 Unity 項(xiàng)目里被重復(fù)編譯和測(cè)試折磨不妨從封裝一個(gè)unity_job.py開始你會(huì)發(fā)現(xiàn)讓 AI Agent 驅(qū)動(dòng) Unity 這件事遠(yuǎn)沒有想象中那么玄乎。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
97色色婷婷| AV在线观看网站| 成人网站免费在线播放| 丁香五月天激情综合网| 丁香六月啪啪| 五月丁香六月成人| 婷婷九月丁香天堂丁香天堂| 久久大国产香蕉| 开心五月激情网| 五月天综合激情网| 久久婷婷五月天激情唯美| 一起草AV| 色婷婷综合网站| 亚洲视频久久| 五月丁香婷婷色播无码| 99在线免费视频播放| 激情綜合W W W,激情五月天| 99久久久| 开心五月婷婷激情| 日本99视频| 第五色色色婷婷| 激情综合五月色在线| 婷婷欧美激情综合| 大香蕉久久草| 色婷婷操逼| 人橾人| 日本激情综合| 久久99草五月婷婷| 亚洲殴洲精品Av在线| 国产五月视频| av婷婷丁香| 97亚洲视频在线| 26uuu日韩| 久热黄色| 色色五月婷| WWW.17C亚洲精品| 思思热久久久在线| 丁香美女主播视频在线观看| 丁香狠狠色婷婷久久无码视频| 婷婷区日本| 丁香六月婷婷综合激情欧美 | 4399伦理午夜| 熟女91九色| 色婷婷91激情小说| 中文字幕在线不卡视频| 91精品久久久久久久久| 97人人超| 五月婷婷久久开心网| 婷婷五月在线免费| 夜夜骑日日夜夜| 婷婷五月AA五月在线| 伊人青草成人| 六月丁香好婷婷| 蜜桃婷婷丁香| 亚洲色优| 亚洲激情av| 99精品在这里| 懂色av粉嫩av蜜臀av| A片女女女女女女BBBB| 九九热超碰| 最近中文字幕大全免费版在线| 久久这里只有精品99| 天天激情站| 五月丁香影院| 熟女人妻一区二区三区免费看| 极品人妻VIDEOSSS人妻| 天天综合色99| 99,色| 狠狠做六月爱婷婷综合aⅴ| 五月婷婷综合激情| 噜噜噜精品欧美成人在线观看| 欧美爆乳一区二区三区| 亚洲综合网 665566| 国产精品成人AV在线| 人妻aV在线| 久久激情网| 亚洲人妻av伦理| 超碰成人黄色网| 婷婷干| 色婷综合| 无码地址| 另类小说激情五月天| 2017人人操| 操久久网| 九月停停| 人妻久久久久久久久妻久久久久久久久 | 久久婷婷五| 激情综合色婷婷啪啪六月天| 激情五月综合色婷婷| 色五月成人在线| 激情VA视频| 色99在线| 六月五月天婷婷涩播在线| 色婷婷无吗| 人伦30P| 久久九九免费大视频| 五月天婷婷丁香视频| 精品久久久人妻| 草草操操| 超碰京东热av男人的天堂| 中美月韩免费A片| 丁香六月亚洲| 人妻综合网| 精品人妻伦九区久久AAA片| 91婷婷视频| 日本欧美国产| 亚洲五月色| 另类小说五月天| 中文字幕无线久必| 九九99在线观看视频| 久久五月婷天天干| 九九综合| 国产67194| 五月天激情Av| 五月婷在线| Y11111111111少妇电影院| 99精品一二三四视频| 天天干-天天日| 久操大| 久久久久亚洲AV综合| 婷婷丁香五月91| 一二三区视频韩国| 99操碰| 天啪色| 五月天伊人av| 丁香五月婷久久| 色吧网91| 五月丁香婷中文| 久久久www| 97超级碰碰碰久久久| 丁香综合网| 色丁香六月| 99热只有| 丁香色五月婷婷17C| 99热国产免费| 一区二区三区四区牛| 777久久精品| 天天爽天天干| 97超级操操| 色高清无码视频| 六月丁香婷| 国产小网站| 激情婷婷丁香色五月| 五月香婷婷| 九九精品综合| www.婷婷五月天| 天堂久热| 色五月综合激情| 丁香五月成人| 亚洲色婷婷99一9|| 中文字幕丰满孑伦无码专区| 婷婷丁香五月精品| 欧美日韩精品人妻狠狠躁免费视频| 色五月天堂| 91精品久久久久、久五月天| 婷婷综合一二三| 色天天综合| 久在线88综合| 五月婷婷自拍| 人人操人人添人人摸97| 色噜噜狠噜噜视频| 久99在线视频| 五月丁香婷婷色| 日韩黄色电影| 大香蕉婷婷丁香视频在线| 亚洲av无码影院| 深爱五月日韩| 伊人五月综合网| 激情五月色播五月| 26.uuu丁香五月婷婷| 天天日天天干天天爽| 潮汕成人AV片在线| 亚洲人人操| 黄色一极大片| 大香蕉520| 日本三级中国三级99| 六月婷婷最新网址| 欧美性爱一区| 这里只有精品视频视频在线观看| 亚洲国产精品VA在线看黑人| 丁香五月色情| 欧美色97| 五月婷婷啪啪| 九九视频这里只有精彩| 色婷婷91| 99在线精品免费视频| 成人在线不卡| 怡红院AV亚洲一区二区三区H | 五月婷婷伊人久久| 久久婷婷五| 五月天色五月| 久久er这里只有精品| 99热这里只有精品22| 狠狠色噜噜狠狠色噜噜噜999| 高清无码网址| 狠狠色婷婷777| 五月天大香蕉AV| 五月天丁香婷| 久久这里都是精品视频| 九九人人自拍| 高清一区二区三区日本久| 人人摸人人射| 九九99免费视频| 五月丁香在线| 天天天天天天操| 亚洲午夜视频| 五月开心播播网| 无码色色| 亚洲婷婷五月天在线激情综合网| 97碰碰九九视频| 国内精品玖玖| 99久久久久| 国产精品久久久久久妇女6080| 色六月视频| 色老久久| 99热8在线| 婷婷五月天激情网| 这里只有精品在线播放| 久天综合| 欧美日韩成人h| 五月天色色婷婷| 亚洲综合色网站| 色级婷婷| 曰韩少妇内射免费播放| 91人人爽狠狠狠| 丁香五月婷婷成人色区| 991国产精选视频在线播放下载| 99免费在线视频| 色色色.COM| 欧美综合123区| 99国产精品白浆在线观看免费| 玖玖热视频| 在线99热| 激情 婷婷| 超碰在线国产| 久久久91| 五月婷婷婷丁香播| A久网| 超碰九九热| 性生生活大片又黄又| 五月天播播| 包操45分钟网站| 影音先锋男人资源站一区二区| 丰满人妻一区二区三区| 激情亚洲婷婷| 五月天婷婷在线观看| 激情五月天噢美| 久久大香免费| 亚洲AV无码电影| 9久久精品| 亚洲五月停停| 深爱五月网| 影音先锋女人av鲁色资源网小说免费 | 9精品久久999| 精品色色| 大香蕉五月天婷婷| 久热9| 第五色色色婷婷| 2020久久婷婷五月| 精品视频这里只有精品| 秋霞性爱AV| 丝袜熟女一区二区三区| 久久久久久久91| 来吧亚洲综合网| 97婷婷丁香| 黄色激情五月天| 色婷婷欧美在线| 亚洲视频二区| 另类视频综合| 色99在线| 久草婷婷| 五月丁香综合激情在线观看| site:hcxsz888.com| 人人综合久| 免费在线a| 五月婷婷 婷婷五月 一区二区 久久久| www.天天干| 九月激情网| 99看片| 丁香五月亚洲| 婷婷日日夜夜| 五月天婷婷激情小说电影| 六月丁香婷婷在线波多 | 操99| XX色综合| 99热最新| 99热个人在线| 97色碰碰公开视频| 免费超碰在线| 97资源碰碰在线| 午夜婷婷久久 | 天天做天天爱高潮片| 99色热视频| 99爱99操| 噜噜色五月| 亚洲精品乱码久久久久久按摩观| 玖玖在线资源视频| WWW激情五月天| 五月天伊人日日噜影片AV| 天天做天天爰天天爽天天无遮挡| 婷婷深爱五月亚洲综合| 久久AV电影| 丁香婷婷十月| 色综合天天| 99热亚洲| 色丁香五月婷婷| 婷婷97| 婷婷丁香五月激情中文字幕版| 第四色色六月色综合| 亚洲五月丁香综合网| 性日本激情| 色八月婷婷| 婷婷久久视频| 丁香婷婷婷五月| 99亚洲精品| 婷婷久久五月| 99视频这里有精品| 久久婷婷资源| 色婷婷五月天激情| 五月天伊人手机在线播放AV| 伊人网啪啪| 丁香九月综合激情| 色五月婷婷五月天| 九九成年视频| 婷婷五月激情综合| 六月天丁婷婷| 91超碰在线观看| 久久久97| 久久国产AV| 综激情网| 丁香五月第四色88| 91大神操美女| 国产AV一区二区三区最新精品| 亚洲va久久久噜噜噜久久天堂| 综合九九久久| 五月婷婷偷| 日本熟女内射| 婷色五月| 综合久久综合五月天婷婷| 五月色丁香| 亚洲性图一区二区三区| 五月婷婷啪啪综合网| 九九热99热| 五月丁香色欲| 欧美天天草人人草| 亚洲激情免费视频观看| 婷婷五月天色色| 好大好粗嗯啊-一级黄色大片免费观看-成人AV| 久久久网站| 久久在线人妻| 激情综合一| 情色五月天 网站| 7777激情基地| jiZZdr| 91丨九色丨大屁股| 日韩精品超碰在线观看| 人人操人人爱丁香五月| 亚洲热久久| 91九色国产熟女| 日日干夜夜干| 五月天婷婷色色| 婷婷丁香五月亚洲综合网在线视频观看| 狼人婷婷久久| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 美妞av| 99热这里只有精品首页| 欧美成人一区二区三区在线视频| 91avse| 99热777| 亚洲婷婷免费| 久久五月天色婷婷| 99热九九热| 99国产精品久久久久久久久久久| 国产激情AV| av操一操| 九九爱激情| 影音先锋按摩| 超碰色综合| 欧美人人草草| 色婷婷狠狠色| 女人高潮内射99精品| 9有码中文| 国产资源91在线| 婷婷激情综合网| 色婷婷天堂| 一级操逼内射在线视频| 日韩av手机在线观看| 九九色影视| 五月天婷婷丁香导航| 色色色com| 色五月之第四色| 超碰97干| 五月色丁香| 99re8在这里只有精品| 婷婷伊人久久无码色五月| 亚洲无码成人网| 超碰三级片| 日韩无码性爱| 亚洲国产精品VA在线看黑人| 男人天堂AV在线一区二区| www.sezonghe| 欧美在线ee日韩| 热久久视频99| 91色五月在线观看| 激情五月少妇| 99re在线免费视频| www.狠狠操| 99久久6| yirenjiqingshiping| 色婷婷伦理| 蜜桃人妻无码AV天堂三区| 亚洲黄色影视| 亚洲欧洲另类| 97干婷婷五月天| 99热在线播放| 性爱电影科技贸易有限公司| 青青草青青草五月天| 99色视频在线观看| 亚洲中文AV| 婷婷五月骚厕所| 天天色中文字幕女优AV| 丁香六月婷婷综合啪啪| 亚洲色基地| 欧美丁香五月| 色综合99| 少妇性BBB搡BBB爽爽爽视頻| 色婷婷激情五月天在线观看| 人人操人人添人人摸97| 91久久五月天| eeuss人妻| 日本一级一级一级一级| 另类小说五月天综合网| 亚洲精品九九| 色五月色图| 成人网址在线观看| 免费看欧美成人A片无码| 亚洲激情五月婷婷日日| 日本天堂网站99| 久久久天天啊| 色色综合成人网| 国产精自产拍久久久久久蜜| 色色综合网络| 殴美激情综合网| 五月天色影院| 五月天婷爱综合| 亚洲丁香婷婷| 中文字幕AV在线播放| 伊人网欧美在线男人天堂五月丁香| 五月激情综合网| 五月色导航| 婷婷五月天涩涩| 99久热在线精品| 亚洲综合激| www.lchjjc.com| 99综合| 99色热| 都市激情五月婷婷亚洲| 99久精品视频| 乱精品一区字幕二区| 欧美人妻一区二区| 婷婷丁香视频在线观看免费 | 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 欧美激情五月天在线观看| 婷婷综合在线网| 99综合久久| 丁香八月综合激情| 亚洲成人网站在线| 亚洲精品字幕| 最新久久网址| 丁香五月第四色88| 国产亚洲在线观看| 92久久久| 开心五月婷婷| 毛片新网地| 色狠狠六月| 丁香五月天狠狠操| 91 欧美| 欧美槡BBBB槡BBB少妇| 综激情网| 深爱1激情网| 国内婷婷丁香社区在线播放| 18久久| 新激情五月天| 亚洲成人综合在线| 五月丁香狠狠| 99热在这里只有免费精品| 亚洲视频另类| 欧美成人AAA片一区国产精品| 婷婷五月成人| 色丁香五月综合网| 五月丁香啪啪啪免费看| 超碰成人av| 亚洲狠狠丁香婷婷香蕉| 激情六月婷婷| 97干免费视频| 激情丁香五月天图片| 开心丁五月| 一起草无码| 超碰色碰碰| www久久99| 99热碰碰| 五月丁香香蕉| 俺去啦综合网| 色综合久久88色综合中文字幕| 久久色天堂| 天天天摸夜夜夜玩| 内射丰满人妻| 777.色色| www.婷婷网| WWW色色色COm| 婷婷玖玖五月天| 五月天婷婷无码| 亚洲V国产V欧美V久久久久久| 色九网| 深爱激情丁香| 丁香五月婷婷色偷偷| 五月激情视频网| 性爱先锋AV| 日韩操逼大片| 97干在线观看视频| 亚州操逼网| 92久操视频| 亚洲丁香五冃97色| 日韩成人精品中文字幕电影| 国产特级毛片AAAAAAA高清| 丁香五月六月综合激情| 色婷婷亚洲精品天天综| 日韩无码专区| 人妻无码精品一区| 五月激情六月综合| 六月激情网| 婷婷丁香色五月| 99热青青草| WWW.99视频| 超碰在线综合| 婷婷综合亚洲| 五夜婷婷| 欧美黄色AA片哗啦啦啦| 丁香六月综合激情| 五月天激情小说| CHINESE熟女老女人HD视频| 青青草成人网| 五月丁香| 亚洲综合色婷| 久久婷婷成人综合色怡春院| 黄色激情五月天| se影音资源在线观看| 天天高潮夜夜爽| 激情综合网五月激情| 天堂草在线看www| 九九视频这里只有精品| 182TV大香蕉| 色啪影院| 丁香五月天激情综合| 五月婷婷大香蕉| 在线观看国产高清视频免费网站| 黄网在线免费观| 99色人| bukadeavzaixian| 丁香五月婷婷欧美激情-中文天堂最新版在线观看 | 97久久超碰| 天天 青草 制服丝袜 在线| 99热久久这里只有精品| 亚洲丁香网| 99re8在这里只有精品| 婷婷色啪| 天天综合网站| 欧在线一区| 97干视频在线| 超黄亚洲瑟瑟网站| 国语精品探花| 玖玖综合网| 激情综合五月天| AV片在线观看| 国产91视频| 亚洲综合新99视频| 色五月激情五月天| 久久99网站| 99re热视频这里只精品| 日日杆天天| 婷婷五月天激情四射| 亚洲经典三级| 国产资源在线视频| 五月丁香视频在线观看| 婷婷 色 丁香 夜| 99婷婷| 婷婷五月丁香第四色超碰在线| 91丨九色丨国产在线| 亚洲99综合| 五月天色综合服务平台| 99九无网码| 99国产精品白浆在线观看免费| 97色碰碰公开视频| 丁香色五月婷婷17C| 韩国久久少妇视屏| 美女五月天| 婷婷热色| 丁香婷婷五月天亚洲| 天天做天天摸| 开心五月深爱五月| 99碰网站| 五月丁香六月激情啪| 五月天激情四射| 丁香狠狠色婷婷久久无码视频| 在线中文字幕av| 婷婷五月天在婷| AV中文在线| 久久综合图片| 色色综合日韩| 五月色色网| 97午夜一区二区| 色狠狠五月天| www.婷婷,com| 婷婷五月另类网站| 极品 少妇 内射| 六月婷婷激情| 无码九九九九| 丁香五月色情| 色婷婷在线视频| 色婷婷AV在线| 国产26uuu| 久久99国产综合精品免费| 色热久| 激情五月天激情小说| 伊人无码高清| 青青草性爱视频| 亚洲成人在线综合| 九九热99精品| 五月丁香六月香综合激情| 久久久久婷婷| 97色碰| 人人摸人人澡人人| 狠狠色狠狠色综合日日91| 开心婷婷五月花| 99热这里只有精品66| 黑人熟妇一区二区三区| 天天日,天天插| 久久人妻超碰一区| 五月丁香激情婷婷综合字幕| 免费黄色片子| 开心六月婷| 99精品自拍视频| 99精品高潮| 久久久久丁香婷婷五月天| 狠狠干五月| 日日干日日s| 日本99视频| 久久网站免费亚洲| 99热这里只有精品首页| 久久综合中文| 婷婷色色五月天| 激情四射网| 久操福利| 中文字幕综合网| 亚洲情色一区| 综合啪啪| 4399在线日本A片| 亚洲综合在线播放| 8区视频在线| 五月丁香婷中文| 97干视频在线| 六月婷婷av| 伊人色综合影院视频| 五月天激情四射网站| 狠狠爱夜夜| 97操碰在线视频| 69久久99精品久久久久| 99日本黄站| 337p大胆噜噜噜噜噜91Av| 91超级碰| 色婷婷综合久色AV五色最新| 婷婷丁香五月综合| 天天射射夜| 国产免费一区二区三州老师F1……| 99这里只有精品在线观看| 婷婷五月丁香五月基地| 五月天激情亚洲| 亚洲成Av人片乱码色第1集| 婷婷五月天综合网| 五月婷色色| 9999久久久久| 综合热无码| 午夜激情四射影院| 婷婷激情六月综合| 人人干天天舔| 婷婷丁香无码专区| 丁香五月伊人| 色婷婷五月天av在线| 久久精彩视频| http://www.sd-xiangsu.com/| 婷婷中文网站| 丁香成人五月天| 国产99视频永久免费| 色色色色色日韩午夜激情| 色99色| 天天色情站| 中文字幕操比影片| 丁香五月色五月| 久久这里都是精品免费| 婷婷婷婷午夜| 伊久久婷婷| 女人天堂AV| 婷婷伊人五月| 亚洲最大在线| 69凹凸成人综合网| 另类图片激情五月| 色天天久婷婷| 色婷婷色综合激情91| 色偷偷综合| 999热成人在线综合网| 五月天婷婷社区久久综合| 五月色网| 丁香五月六月综合激情| 色婷婷成人丁香| 久久五月天丁香| 日韩无码色色| 九九九九这里只有精品| 五月丁香美女视频| 九月婷婷综合在线| 99热国产| 色色色婷婷| 97涩涩丁香五月天| 婷婷五月综合久久中文字幕| 丁香五月婷婷av影院| 久草性爱| 性99网站| 五月天色婷婷激情综合| 在线看黄色| 国产肥白大熟妇BBBB视频| www,com,五月色色| 色五月婷婷啪啪五月| www.五月婷婷| 五月天婷婷色色首页| 亚洲无码99| www.99日本| 六月丁香激情婷婷| 在线国产精品色| 国产综合81p| 在线视频婷婷| 色婷婷婷综合五月天| 丁香五月婷婷天堂大香蕉| 日本乱子人伦在线视频| 婷婷精品| www久久艹| www.亭亭五月天| 熟女乱论网| 97碰| 一二区成人电影| 91女人18毛片水多国产| 亚洲情综合五月天| 亚洲综合成人网| 99热免费精品| 九九热最新视频| 精品久久久久久久久久久久人妻| 中文字幕婷婷五月天| 91色噜噜狠狠狠狠色综合| 久久月天堂| 双性美人被调教到喷水A片| 五月天婷婷无码| 97干网站| 色婷婷在线视频| 五月丁香六月婷婷综合| www.lingjunshare.com| 亚洲综合五月天综合| 五月丁香婷婷无码中文| 久久婷婷热| 欧美人久久| 99人人操人人操人人精| 91精品丝袜久久久久久久久粉嫩| 久久久久9久无码视频| 熟女人妻一区二区三区免费看| 天天噜噜| 天天色视频| 国产精品电影| 色综合夜夜| 99热最新精品| 超碰色色综合| 亚欧州精品视频| 一本久道综合99| www.五月天婷婷| 丁香六月婷婷综合欧美| 干一干xxxx| 婷婷激情人妻| 原琪琪色影院| 狠狠色婷婷777| 九九色热| 久久这里只精品66| 操操操av| 婷婷成人五月天一区| 开心日韩丁香婷婷五月| 日逼免费视频| 婷婷色情五月| 天天插综合网| 中文字幕人妻在线| 五月丁香婷婷啪啪| 开心五月深爱五月| 无码日本精品XXXXXXXXX| .精品久久久麻豆国产精品| ..真实国产乱子伦对白在线_欧 | 天天操天天曰| 色五月激情综合| 97干免费视频| 激情五月久久| AA片在线观看视频在线播放| 91九色PORNY大屁股| WWW色色色COM| 欧美久久网| 色色色99| 丁香婷婷人妻综合网| av网站免费在线| 六月婷婷AV| 99热主页日本| 思思热久在线观看视频| 这里只有精品久| 五月丁香六月婷婷无码| 人人操97| 99久热| 亚洲精级| 99综合自拍| 色色自拍视频网站| 六月五月婷婷| 无码髙清| 婷婷久久五月天| 狠狠狠狠狠狠草| 九九热99免费视频| 色色网站观看| 亚洲va欧洲va国产va不卡| 99热1| 少妇AB又爽又紧无码网站| 在线中文字幕免费视频| 91碰超| 97色五月天| 狠狠干在线| 激情综合网五月激情| 中国女人做爰A片| 99小视频在线观看| 人人爱干人人爱草| 六月丁AV| 丁香五月婷婷网| 91狼友视频在线观看| 人人人操| 99久久精品网| 欧美影院婷婷| 久操香蕉| 6月丁香婷婷| 久久少妇视频| 综合激情婷婷| 综合爱久久| 五月激情丁香六月狠狠干| 九九热免费| 激情综合五月婷婷| 六月婷在线| 久月丁香爱婷婷综合| 亚洲精品网址| 精品一二三区视频立| 天天搞天天爽| 日本熟妇乱妇熟色A片蜜桃| 黑人无码一区| 深爱激情av| 丁香色婷婷五月天| 九月av在线| 日 日干 日日做| AV在线中文| 色婷婷精品视频在线播放| 啪啪色激情五月天| 欧洲色色| 午夜]香婷婷深深爱| 九九热视频精品2| 99九九视频| 草了bav视频在线观看| 色五月婷婷综合| 久久五月综合| 少妇伦子伦精品无吗| 国产成人+综合亚洲+天堂| 婷婷激情五月天小说| 激情综合网,婷婷五月天| 九九黄色网| 亚洲在线视频321| 久久五月婷天天干| 国产av天堂| 99久久婷婷| 操逼巨乳91| av一区免费看| 99只有这里是精品| 五月婷婷六月天| 久热九九| 久久久大香蕉| 人妻激情视频| 五月天六月婷婷| 免费91久久精品| 五月亭亭激情综合| 六月激情婷婷| 丁香五月天在线观看视频| 国产午夜精品一区二区| 99热久久日本| 色婷婷色五月天| 99热传媒| 欧美激情五月| 日本五月天一页| 9精品久久999| 天天做天天要天天爽| 五月丁香综合啪啪| 日韩婷婷五月| 五月婷色色| 99热久草| 六月婷婷色色色| 久久玖玖综合| 欧美色五月| 99内射视频| 综合网天天| 老师把我爽高潮了免费A片| www.深爱激情| 丁香五月色色婷| 狠狠色噜噜狠狠| 91久女| 巴基斯坦粉嫩无码视频| 免费91久久精品| 五月婷婷在线观看| 成人精品免费在线观看| 亚洲情a| 丁香六月综合| 亚洲色网络| 五月综合六月婷婷| 丁香婷婷色五月激情综合| 国产第99页| 婷婷亚洲综合| 免费婷婷| 色五月av| 丁香五月成人论坛| 四川BBB搡BBB爽爽视频| www夜夜操wwwcon| 亚洲无码猫咪| 26uuu欧美| 久久久99久久| 97香蕉碰碰人妻国产欧美| 日本五月婷婷久久久六月丁香| 国产一区二区三区影院| 26uuu91| 欧在线一区| 婷婷99狠狠| 九九综合九九| 香蕉综合网| 狠狠干五码| 91亚洲天堂| 久久曰曰| 五月丁香狠狠爱婷婷综合| 丁香九月激情在线视频| 丁香五月天婷婷激情| 色婷婷欧美| 亚洲乱码精品久久久久.. | 丁香五月成人| 插插五月天| 亚洲成人中文字幕| 色欲丁香| 丁香五月综合福利视频导航| www.韩日视频| 99精品在线观看视频| 高清无码.com| 99ri网站在线观看| 五月丁香综合中文| 丁香五月激情天AV无码| 激情婷婷五月丁香啪啪啪| 激情婷婷六月天| www.超碰| 99干免费视频| 人人操AV| 久久99久久99精品免视看婷婷| 色五月色情| WWW,五月| 乱色色色| 婷婷综合网站| 91久女| 激情久久久久久| 婷婷六月天精品| 大香蕉狠狠爱主页| 综合婷婷| 色五月亚洲| 美女五月天婷婷| 人人草碰| 五月婷在线| 婷婷八月丁香激情综合| 色久婷婷网| 日韩美女羞羞网站在线观看| www.激情| 五月婷婷在线观看黄| xx综合网| 久操大| 超碰免费人人肏| 色五月婷婷久久| 色婷婷综合综合网| 五月婷婷就去色| 九色在线观看91av| 国产成人片| 丁香五月激情网| 婷婷中文字幕版| 日本三级日本三级三级人妇四虎| 激情操逼婷婷| 色吧五月婷婷| 色色亚洲五月天| 五月丁香直播| 五月天堂色| 另类婷婷五月天啪帕帕| 五月丁香成人网| 五月丁香六月玩女人| 亚洲射激情| 激情色色| 女人天堂久久| 果冻传媒A片一二三区| 日日操日日撸| 91色吧网| 色色综合网络| 婷婷激情蜜桃玖玖丁香| 亚洲天堂热| 激情丁香五月AV| 婷婷丁香日韩五月| 91超级碰碰| 欧美六月| 99热官网| 日日日日操| 国产精品-第3页-91JQ就要激情网91JQ5.JQJQ926.XYZ | 五月天婷婷爱| 伊人五月网| 婷婷5月色| 婷婷亚洲色| 五月综合丁香婷婷| 一级黄色操B| 色综合视频在线| 天天干天天爽| 色五月婷婷五月天| 99久久久久| 综合激情五月婷婷| 婷婷色色婷婷| 亚洲视频图片婷婷五月| 伊人9999| 第一区久久网站| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 日本激情综合| 丁香五月亚洲综合| 我爱宗和色| 亚洲五月天天| 九九热视频首页/这里只有精品| 精品人人操| 天天久综合网永久入口17v| 六月大香蕉| 欧美色色色色色色| 婷婷色五月天色| 色色五月综合| 五月香蕉网| 色色色色色色色色色色色色色五月天| 一级视频网址| 超碰无码老师| 大香蕉天堂色| 人妻五月天激情开心网| 精品一区二区三区三区| 1024久婷| 青青草五月天| 色婷亚洲| 国产无人区大片| 色婷另类| 亚洲午夜视频| 色五月首页| 天天操天天日天天爱| 97人人干| 青青操avbb| 一本大道嫩草AV无码专区| 亚洲色久| 野战J办公桌椅H| 婷婷色五月91啪啪| 久久综合图片| 婷婷激情五月天小说| 久久免费丁香| 婷婷九九| 日韩一区二区在线播放| 色宗合,宗合网| 99成人无码| 思思国产99| 色99色| 人人操AV| 人妻久久久| 婷婷5月久久综合网站| 色婷婷久久7777| www.五月天色色色| 狼人久草| 婷婷六月色丁香视频在线观看| 婷婷激情鹿城五月天| 99re在线这里只有精品视频首页| 九九热99热| 九色自拍| 亚洲色综合| 第九色区AV在线| 91日精品| 91日韩在线| 森林影视大全,最好看的2019年视频 | yellow视频在线观看91| 婷婷八月激情| 色五月六月婷婷| 高清无码入口| 亚洲天天操| 激情五月成年| 亚洲色婷婷五月天| 久er免费视频| 婷婷激情网五月天| 久操97| 婷婷六月色| 人人操超碰| 91操网| 亚洲99在线| 欧美日韩成人在线网| 这里有精品| 99精品九九| 99视频久久| 五月天五月婷五月激情网| 丁香综合婷婷五月天| 五月天激情久久| 波多野结衣不卡AV| 久久婷婷五月天蜜桃| 五月丁香六月欧美综合| 五月婷婷开心五月| 天天色天天操天天射| 丁香五月伊人| 99在线精品观看99| 玖玖资源站视频| 99re在线观看| 丁香九月色| 久久婷婷五月天| 99热精品在线免费观看| 亚洲va综合va国产va中文| 色婷婷亚洲综合av| 色丁香五月婷婷婷| 另类激情综合| 八戒青柠影视剧在线观看| 久Se视频在线观看| 五月欧美色色五月| 超碰亚洲天堂| 久久久色情| 在线,国产,色,热视频| 大天天伊人| 深夜婷婷 丁香| 久草五月| 人人干av| 欧美A级成人婬片免费看理论| 五月婷婷丁香综合| 久热A| 狠狠色综合网| www.久久久久久久| 99精品免费欧美小视频 | 婷婷久久综合| 爱操天堂| 九九sese| 二色av| 操人精品| 狠色狠色综合久久| 综合色久| 在线婷婷| 五月丁香婷婷爱| 色综合99色| 人人添人人| 色婷婷激情| 99操无码视频观看| 亚洲色A| 亚洲精品白浆高清久久久久久| 国产成人+综合亚洲+天堂| 六月丁香婷婷综合在线| 2050人人操免费工开爱 | 香蕉久久国产AV一区二区| 91ncm视频| 青青草成人网| 国产高清视频91九九九久久久| 日日干日日s| 99热这里是精品| 激情综合五月| 性爱网五月天| 六月婷婷视频| 综合久久五月天| www.99操.com| 五月丁香青草综合啪啪| 精品一二三区久久AAA片| 五月丁香爱婷婷深深| av在线观看免费| 六月婷婷综合激情| 色五月欧美| 色婷婷影| 99爱精品| 免费人人操| 婷婷丁香小说| 综合九九日本| 婷婷射丁香| 色婷婷无吗| WWW,五月| 丁香花五月天社区| 99亚洲色色| 综合久久十| WWW,五月| 久久中国毛毛片爱久久| 思思热精品在线视频| www狠狠爱com| 色 色 色综合com| 亚州婷婷五月激情综合| 这里只有精品免费 | 亚洲欧美999| 九九热青青草| 五月天播播| 色婷婷久久综| 激情久久综合| 亚洲精品国产成人AV在线| 超碰久热| 婷婷五月天伊人在线| 激情综合五月丁香| 六月婷婷狠狠色在线观看| 99ER热精品视频| 丁香五月第四色88| 男人的天堂av俄罗斯热| 五月婷婷婷| 91色吧网| 婷婷综合五月| 五月色婷婷亚洲| 欧美成人AAA片一区国产精品| 丁香综合伊人AV| 国内精品免费一区二区2009| 五月丁香中文字幕| 无码yw| 俺去也五月天婷婷| 色99视| 亚洲成AV人片在线观看| 五月婷婷香| 国产综合色婷婷精品久久| 亚洲五月天婷婷| 色六月丁香婷婷狠狠干| 97久久综合网| 天天爽天天干| 久热无码| 成人国产欧美大片一区| 丁香婷婷色情社区成人小说| 天天干com| 婷婷在线播放| 精品色色网| 五月婷中文娱乐综合| 大天天伊人| 久久机热这里只有精品免费视频| 日日夜夜狠狠| 天天爽夜夜爽天天爽夜夜爽| 综合久久六月| 婷婷刺激综合| 日日夜夜狠狠婷婷色| 91色五月在线观看| 国产精品国产| 激情五月黄色小说| 99久操视频| 婷婷五月天AV| 人妻自慰在线| 五月婷婷激情啪啪| 综合激情在线| 六月亚洲婷婷6月中文字幕| 全部老头和老太XXXXX| 五月天伊人综合| 国产67194| 九月激情婷婷丁香| 色五月天视频| 婷婷丁香激情综合色情| 免费观看全黄做爰的视频| 月婷婷婷婷五月| 色狠狠激情五月| 激情综合网激情五月丁香五月俺也去| 狼人婷婷综合| 色五月天成人在线| 欧美日本黄色|