A professional Unity editor tool for detecting performance issues and code smells in your projects.
This tool is distributed under the MIT license.
⚠️ If you use it in a commercial product, it is appreciated if you include a line in your credits such as: "Unity Health Check Lite by Fernando de Cea (GitHub: link)".⚠️
Unity Health Check Lite is a sophisticated editor extension that helps Unity developers identify performance bottlenecks, code quality issues, and architectural problems in their projects. This tool demonstrates advanced Unity editor development techniques while providing real value for project optimization.
Perfect for: Performance optimization, code reviews, onboarding new team members, and maintaining clean codebases.
- Heavy Update Methods - Expensive operations running every frame
- Find in Update Loops - Costly GameObject.Find calls in Update
- Component Caching Issues - GetComponent calls that should be cached
- String Concatenation - GC pressure from string operations in Update
- Missing Components - Broken script references on GameObjects
- Empty GameObjects - Unnecessary objects cluttering hierarchy
- Large Textures - Memory-hungry textures needing optimization
- Responsive layout with clean IMGUI implementation
- Severity filtering (Critical/Warning/Info) with color coding
- Real-time search across all detected issues
- Pagination system for efficient large dataset handling
- Smart sorting by severity, type, or modification date
- One-click navigation to problematic assets
- Live statistics showing issue distribution
- Educational advice for each detected issue type
- Best practice recommendations with code examples
- Performance impact explanations
- Step-by-step solutions for common problems
- Open Unity Package Manager (
Window > Package Manager) - Click
+→Add package from git URL - Enter:
https://github.com/decea89/unity-health-check-lite.git
- Download the latest release
- Import the
.unitypackageinto your project - No additional setup required!
- Clone this repository
- Copy the
Assets/HealthCheckfolder to your project'sAssetsfolder
- Open the tool:
Tools → Unity Health Check Lite - Configure scan types: All enabled by default, customize as needed
- Run analysis: Click "Scan Project"
- Review results: Use filters to focus on specific issues
- Get guidance: Click "AI Advice" for solutions
- Navigate: Use "Select" to jump to problematic assets
// BAD: Heavy operations every frame
void Update() {
GameObject player = GameObject.Find("Player"); // O(n) search!
GetComponent<Rigidbody>().AddForce(Vector3.up); // Repeated lookup
string display = "Score: " + score; // GC allocation
}
// ✅ GOOD: Optimized version
private GameObject player;
private Rigidbody rb;
void Start() {
player = GameObject.Find("Player"); // Cache once
rb = GetComponent<Rigidbody>();
}
void Update() {
rb.AddForce(Vector3.up); // Use cached reference
}| Metric | Before | After | Improvement |
|---|---|---|---|
| Update Performance | 2.5ms | 0.3ms | 88% faster |
| GC Allocations | 50KB/frame | 0KB/frame | 100% reduced |
| Memory Usage | 450MB | 380MB | 15% smaller |
- Clean separation of concerns with distinct responsibilities
- SOLID principles applied throughout
- Extensible design for easy feature additions
- Professional error handling with graceful degradation
- Efficient algorithms with O(n) complexity considerations
- Smart caching to avoid repeated expensive operations
- Memory management with proper resource cleanup
- Pagination for UI responsiveness
- AssetDatabase expertise for project-wide scanning
- Advanced IMGUI techniques with custom styling
- Regex-based analysis for sophisticated pattern detection
- Scene management for hierarchy analysis
| Issue Type | Severity | Performance Impact | Common Causes |
|---|---|---|---|
| Heavy Update | 🔴 Critical | High frame drops | Complex calculations, nested loops |
| Find in Update | 🔴 Critical | Severe stuttering | Object searches every frame |
| GetComponent in Update | 🟠 Warning | Minor frame impact | Uncached component access |
| String Concatenation | 🟠 Warning | GC pressure | UI updates, debug logging |
| Missing Components | 🔴 Critical | Runtime errors | Deleted scripts, broken prefabs |
| Empty GameObjects | 🟡 Info | Memory overhead | Leftover hierarchy, unused parents |
| Large Textures | 🟠 Warning | Memory bloat | Unoptimized imports, wrong formats |
Contributions are welcome!
This project is licensed under the MIT License - see the LICENSE file for details.
This lite version showcases core functionality. The Complete version includes:
- 20+ smell types (vs 7 in Lite)
- Automated fixes with code generation
- Live AI integration (OpenAI, Claude, Perplexity)
- Incremental scanning with progress tracking
- Custom rules creation and sharing
- Team collaboration features
- Build pipeline integration
- CI/CD integration for automated checks
- Performance benchmarking with metrics
- Historical analysis and trend tracking
- Bulk operations and batch fixes
- Priority support with direct access
Contact: fdc@beanrise.net
⭐ Star this repository if it helps your Unity projects! ⭐
