為了讓可視化腳本在復雜場景下依然保持極致流暢, CodeGen(代碼生成) 功能應運而生。點擊Compile按鈕可將項目中的 EventGraph(事件圖) 與 Functions(函數圖) 從圖的解釋執行切換為編譯后的 C# 代碼運行,徹底釋放運行時性能。
![]()
丨核心優勢
解釋執行 → 編譯執行:原來在運行時逐節點解釋圖邏輯,現在直接運行預編譯的 C# 代碼,大幅降低 CPU 開銷與內存分配。
零破壞性接入:生成 C# 代碼后,運行時系統會自動檢測并優先使用編譯版本,無需手動修改任何引用或邏輯。
無感知切換:舊有圖解算邏輯保留,只在存在生成代碼時自動啟用高性能路徑,方便調試與回退。
安全可追溯:生成的代碼放置于
Assets/AnimGraph.Generated文件夾,結構清晰,便于版本管理與排查。
丨如何使用
在 AnimGraph 編輯器中打開圖。
確保 EventGraph 和 Functions 邏輯已完成且測試通過。
點擊工具欄上的 Compile 按鈕。
生成的 C# 代碼將自動存入
Assets/AnimGraph.Generated下。之后再運行項目時,引擎會自動檢測并加載編譯后的代碼,跳過圖解算過程,直接執行高性能邏輯。
如需回到解釋執行模式,只需刪除對應的生成文件即可。
![]()
丨適用場景
每幀調用的高頻邏輯(如動畫更新、角色運動等)
角色多,性能需求高
函數庫龐大、連線復雜的工程
丨注意事項
點擊 Compile 前請確保圖邏輯無編譯錯誤,避免生成無效或錯誤的代碼。
生成的 C# 腳本,請避免手動編輯。
現階段若要切換為圖運行,需要刪除對應的生成腳本。
建議將
AnimGraph.Generated加入版本控制,以保持團隊一致性。
丨結果比較
在150個角色,每個角色運行300多個節點下,編譯后直接走C,可有效提升運行速度和減少運行開銷。
![]()
未使用Code Gen
![]()
使用了Code Gen
Unity 官方微信
第一時間了解Unity引擎動向,學習進階開發技能
每一個“點贊”、“在看”,都是我們前進的動力
![]()
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.