5.8 KiB
Hướng Dẫn Sử Dụng Unity Editor Only Analyzer
✅ Tình Trạng Hiện Tại
Analyzer đã được thêm vào Assembly-CSharp.csproj!
File .csproj hiện đã có analyzer tại dòng 62:
<Analyzer Include="E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\bin\Release\netstandard2.0\UnityEditorOnlyAnalyzer.dll" />
🔄 Cách Unity Generate .csproj Files
Unity tự động generate các file .csproj khi:
- Mở project lần đầu - Unity scan tất cả scripts và tạo
.csprojfiles - Thêm/xóa script files - Unity tự động regenerate
- Thay đổi External Script Editor - Edit > Preferences > External Tools > External Script Editor
- Gọi menu "Open C# Project" - Assets > Open C# Project (hoặc double-click vào
.csproj) - Reimport scripts - Click phải vào folder Scripts > Reimport
Script AddAnalyzerPostprocessor.cs hoạt động như thế nào?
Script này sử dụng AssetPostprocessor.OnGeneratedCSProjectFiles() - một callback mà Unity gọi SAU KHI đã generate xong tất cả .csproj files.
Khi Unity generate .csproj:
- Unity tạo các file
.csprojmới (ghi đè file cũ) - Unity gọi
OnGeneratedCSProjectFiles() - Script của chúng ta đọc file
.csprojvừa tạo - Thêm analyzer vào
<ItemGroup>nếu chưa có - Ghi lại file
🚀 Cách Kích Hoạt Analyzer
Cách 1: Reload Project trong Visual Studio (Khuyến nghị)
- Đóng Visual Studio (nếu đang mở)
- Mở lại Visual Studio bằng cách:
- Double-click vào
perfect-world-unity.sln - Hoặc trong Unity: Assets > Open C# Project
- Double-click vào
- Visual Studio sẽ tự động load analyzer và hiển thị warnings
Cách 2: Trigger Unity Generate Lại .csproj
Nếu analyzer chưa được thêm tự động, bạn có thể trigger Unity generate lại:
Trong Unity Editor:
- Mở Unity Editor
- Vào menu: Tools > Unity Editor Only Analyzer > Regenerate Project Files
- Hoặc: Assets > Open C# Project
- Kiểm tra Console để xem log từ
AddAnalyzerPostprocessor
Hoặc thủ công:
- Xóa các file
.csprojvà.slntrong project root - Mở lại Unity Editor
- Unity sẽ tự động generate lại
Cách 3: Thêm Thủ Công (Đã làm)
Analyzer đã được thêm trực tiếp vào Assembly-CSharp.csproj ở dòng 62.
✅ Kiểm Tra Analyzer Đã Hoạt Động
Bước 1: Tạo File Test
Tạo file Assets/TestEditorOnly.cs:
#if UNITY_EDITOR
public class EditorOnlyTestClass
{
public static void EditorOnlyMethod()
{
UnityEngine.Debug.Log("This is editor only");
}
}
#endif
public class RegularTestClass
{
public void TestMethod()
{
// ⚠️ Dòng này nên có warning trong Visual Studio
EditorOnlyTestClass.EditorOnlyMethod();
}
}
Bước 2: Mở trong Visual Studio
- Mở file
TestEditorOnly.cstrong Visual Studio - Bạn sẽ thấy squiggly line (gạch chân màu vàng/xanh) dưới
EditorOnlyMethod() - Hover chuột sẽ thấy warning:
UNITY_EDITOR_ONLY_USAGE: Method/Type 'EditorOnlyMethod' is only available in UNITY_EDITOR and may cause build errors
Bước 3: Kiểm Tra Error List
Trong Visual Studio:
- View > Error List (hoặc Ctrl+W, E)
- Chọn "Warnings" tab
- Tìm warning với ID
UNITY_EDITOR_ONLY_USAGE
🔧 Troubleshooting
Analyzer không hiển thị warnings?
-
Kiểm tra analyzer DLL tồn tại:
Test-Path "E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\bin\Release\netstandard2.0\UnityEditorOnlyAnalyzer.dll"Phải trả về
True -
Kiểm tra .csproj có analyzer:
- Mở
Assembly-CSharp.csproj - Tìm dòng có
UnityEditorOnlyAnalyzer.dll - Đảm bảo đường dẫn đúng
- Mở
-
Reload project:
- Đóng Visual Studio
- Xóa folder
objvàbintrong project (nếu có) - Mở lại Visual Studio
-
Kiểm tra Error List:
- View > Error List
- Đảm bảo "Build + IntelliSense" được chọn
- Kiểm tra cả "Errors", "Warnings", "Messages"
-
Kiểm tra Output window:
- View > Output
- Chọn "Show output from: Build" hoặc "IntelliSense"
- Xem có lỗi load analyzer không
Script không tự động thêm analyzer?
-
Kiểm tra script có trong project:
- File phải ở
Assets/Editor/AddAnalyzerPostprocessor.cs - Phải có
#if UNITY_EDITORở đầu
- File phải ở
-
Trigger thủ công:
- Tools > Unity Editor Only Analyzer > Add Analyzer to Projects
- Kiểm tra Console trong Unity để xem log
-
Kiểm tra đường dẫn:
- Script dùng
Application.dataPathđể tìm project root - Đảm bảo cấu trúc folder đúng:
perfect-world-unity/ ├── Assets/ ├── UnityEditorOnlyAnalyzer/ │ └── bin/Release/netstandard2.0/ │ └── UnityEditorOnlyAnalyzer.dll └── Assembly-CSharp.csproj
- Script dùng
📝 Lưu Ý Quan Trọng
- Analyzer chỉ hoạt động trong IDE (Visual Studio/VS Code), không phải trong Unity Editor
- Cần reload project sau khi thêm analyzer vào
.csproj - Unity có thể ghi đè
.csprojkhi generate lại - script sẽ tự động thêm lại analyzer - Warnings chỉ hiển thị khi code thực sự có vấn đề - đảm bảo bạn đang test với code có
#if UNITY_EDITOR
🎯 Kết Luận
Analyzer đã được cấu hình và sẵn sàng sử dụng! Chỉ cần:
- Reload project trong Visual Studio
- Tạo file test để kiểm tra
- Xem warnings trong Error List
Nếu vẫn không thấy warnings, hãy kiểm tra các bước troubleshooting ở trên.