3.9 KiB
Kiểm Tra Analyzer Hoạt Động
Vấn Đề Hiện Tại
Trong file CdlgQuickBar.cs:
- Dòng 42:
GetCurPanel1()được gọi từUpdateShortcuts()(KHÔNG có#if UNITY_EDITOR) - Dòng 440-444:
GetCurPanel1()được định nghĩa TRONG#if UNITY_EDITOR
Đây là trường hợp analyzer cần phát hiện!
Các Bước Kiểm Tra
Bước 1: Đảm Bảo Analyzer Đã Được Thêm Vào .csproj ✅
Analyzer đã được thêm vào Assembly-CSharp.csproj tại dòng 62:
<Analyzer Include="E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\bin\Release\netstandard2.0\UnityEditorOnlyAnalyzer.dll" />
Bước 2: Rebuild Analyzer ✅
Analyzer đã được rebuild với logic cải thiện.
Bước 3: Reload Project trong Visual Studio
QUAN TRỌNG: Bạn cần reload project để analyzer hoạt động:
- Đóng Visual Studio hoàn toàn
- Mở lại Visual Studio bằng cách:
- Double-click vào
perfect-world-unity.sln - Hoặc từ Unity: Assets > Open C# Project
- Double-click vào
- Đợi Visual Studio load project (có thể mất vài giây)
Bước 4: Kiểm Tra Warnings
Sau khi Visual Studio load xong:
-
Mở file
CdlgQuickBar.cstrong Visual Studio -
Tìm dòng 42:
int nCurPanel9 = GetCurPanel1(); -
Bạn sẽ thấy:
- Squiggly line (gạch chân màu vàng/xanh) dưới
GetCurPanel1() - Hover chuột sẽ thấy warning message
- Squiggly line (gạch chân màu vàng/xanh) dưới
-
Mở Error List:
- View > Error List (hoặc Ctrl+W, E)
- Chọn tab "Warnings"
- Tìm warning với ID
UNITY_EDITOR_ONLY_USAGE - Message:
Method/Type 'GetCurPanel1' is only available in UNITY_EDITOR and may cause build errors
Bước 5: Nếu Vẫn Không Thấy Warning
Kiểm tra 1: 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 2: .csproj có analyzer
Mở Assembly-CSharp.csproj và tìm dòng có UnityEditorOnlyAnalyzer.dll
Kiểm tra 3: Output Window
- View > Output
- Chọn "Show output from: Build" hoặc "IntelliSense"
- Xem có lỗi load analyzer không
Kiểm tra 4: Force Reload
- Đóng Visual Studio
- Xóa folder
objtrong project root (nếu có) - Mở lại Visual Studio
Kiểm tra 5: Test với File Đơn Giản
Tạo file test Assets/TestAnalyzer.cs:
#if UNITY_EDITOR
public class EditorOnlyTest
{
public static void TestMethod() { }
}
#endif
public class RegularClass
{
public void Test()
{
EditorOnlyTest.TestMethod(); // ⚠️ Nên có warning ở đây
}
}
Nếu file test này có warning nhưng CdlgQuickBar.cs không có, có thể là vấn đề với logic analyzer.
Debug Analyzer
Nếu analyzer vẫn không hoạt động, có thể cần debug:
- Kiểm tra Visual Studio Version: Analyzer cần Visual Studio 2019+ hoặc VS Code với C# extension
- Kiểm tra .NET SDK: Cần .NET SDK để build analyzer
- Kiểm tra Logs: Xem Output window trong Visual Studio
Giải Pháp Tạm Thời
Nếu analyzer không hoạt động ngay, bạn có thể:
- Wrap code gọi trong
#if UNITY_EDITOR:
#if UNITY_EDITOR
int nCurPanel9 = GetCurPanel1();
#else
int nCurPanel9 = 1; // Default value
#endif
- Hoặc di chuyển
GetCurPanel1()ra ngoài#if UNITY_EDITORnếu nó cần được gọi từ runtime code.
Kết Luận
Analyzer đã được cải thiện và rebuild. Bạn cần:
- ✅ Analyzer đã được thêm vào .csproj
- ✅ Analyzer đã được rebuild
- ⏳ Reload Visual Studio để analyzer hoạt động
- ⏳ Kiểm tra warnings trong Error List
Sau khi reload Visual Studio, bạn sẽ thấy warning ở dòng 42 của CdlgQuickBar.cs.