{"id":29966139,"url":"https://github.com/qqw1584913629/autouibinder","last_synced_at":"2026-04-12T22:42:28.136Z","repository":{"id":306879874,"uuid":"1011717456","full_name":"qqw1584913629/AutoUIBinder","owner":"qqw1584913629","description":"Unity UI Auto Binder - A powerful editor extension that automatically binds UI components through visual icons in the Hierarchy window, eliminating manual drag-and-drop operations. Generate type-safe references with a single click.","archived":false,"fork":false,"pushed_at":"2025-07-28T06:20:39.000Z","size":2414,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-28T08:25:01.595Z","etag":null,"topics":["csharp","game","game-development","unity","unity2d","unity3d"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qqw1584913629.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-01T08:35:30.000Z","updated_at":"2025-07-28T06:20:42.000Z","dependencies_parsed_at":"2025-07-28T08:25:43.478Z","dependency_job_id":"921a5134-e00b-41c9-bbd2-a7d1492399dd","html_url":"https://github.com/qqw1584913629/AutoUIBinder","commit_stats":null,"previous_names":["qqw1584913629/autouibinder"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/qqw1584913629/AutoUIBinder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qqw1584913629%2FAutoUIBinder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qqw1584913629%2FAutoUIBinder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qqw1584913629%2FAutoUIBinder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qqw1584913629%2FAutoUIBinder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qqw1584913629","download_url":"https://codeload.github.com/qqw1584913629/AutoUIBinder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qqw1584913629%2FAutoUIBinder/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268639867,"owners_count":24282677,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-04T02:00:09.867Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","game","game-development","unity","unity2d","unity3d"],"created_at":"2025-08-04T02:17:57.123Z","updated_at":"2026-04-12T22:42:23.111Z","avatar_url":"https://github.com/qqw1584913629.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eAutoUIBinder\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n    \u003cstrong\u003eThe Ultimate Unity UI Development Tool\u003c/strong\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"README.md\"\u003eEnglish\u003c/a\u003e •\n    \u003ca href=\"README_CN.md\"\u003e中文\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003e **Stop writing repetitive UI binding code!** AutoUIBinder revolutionizes Unity UI development with visual component binding and automatic code generation.\n\n## What You'll Get\n\n**Transform your UI development workflow from this:**\n```csharp\n// Manual binding - tedious and error-prone\npublic Button startButton;\npublic Text titleText;\npublic Image backgroundImage;\n\nvoid Awake() {\n    startButton = transform.Find(\"Button_Start\").GetComponent\u003cButton\u003e();\n    titleText = transform.Find(\"Text_Title\").GetComponent\u003cText\u003e();\n    // ... manual binding for every component\n}\n```\n\n**To this simple workflow:**\n```csharp\n// Just inherit and generate - that's it!\npublic partial class MyUIPanel : AutoUIBinderBase \n{\n    void Start() {\n        // All components auto-generated and ready to use\n        Button_Start.onClick.AddListener(OnStartClick);\n        Text_Title.text = \"Welcome!\";\n    }\n}\n```\n\n## Quick Start (5 Minutes)\n\n### 3 Steps to Success\n\n#### 1. Create Your UI Script\n```csharp\npublic class MainMenuPanel : AutoUIBinderBase \n{\n    // That's it! No manual component declarations needed\n}\n```\n\n#### 2. Visual Binding\n- Attach script to your prefab root\n- Enter prefab edit mode  \n- **Click the component icons** in Hierarchy - they'll highlight when bound!\n- Real-time visual feedback shows binding status\n\n#### 3. Generate \u0026 Use\n```csharp\n// Click \"Generate UI Code\" in Inspector\n// Then use your components immediately:\n\nvoid Start() {\n    Button_Play.onClick.AddListener(() =\u003e StartGame());\n    Text_PlayerName.text = PlayerPrefs.GetString(\"name\");\n    Slider_Volume.value = AudioListener.volume;\n}\n```\n\n## Visual Demonstration\n\n### Visual Component Binding\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"docs/images/UIComponentNodeBind.gif\" alt=\"Visual Component Binding\" /\u003e\n\u003c/p\u003e\n\u003cp\u003e\nClick component icons in Hierarchy to bind them instantly - see the visual feedback in real-time!\n\u003c/p\u003e\n\n\u003e Generated Code:\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"docs/images/ExampleUIPanelGen.png\" alt=\"Generated Code\" /\u003e\n\u003c/p\u003e\n\u003cp\u003e\nComprehensive component references and bindings generated automatically\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"docs/images/GetUIComponent.png\" alt=\"Generated Code\" /\u003e\n\u003c/p\u003e\n\u003cp\u003e\nComponent instances retrieved via dictionary, maintaining O(1) efficiency\n\u003c/p\u003e\n\n\n## User Interface\n\n## Key Features\n\n- **Visual Binding** - Click component icons in Hierarchy to bind instantly  \n- **One-Click Generation** - Generate all component references automatically  \n- **Smart Naming** - Handles conflicts and invalid characters intelligently  \n- **Zero Configuration** - Works out of the box with sensible defaults\n\n## Project Structure\n\n```\nAssets/\n├── AutoUIBinder/                # Core tool\n│   ├── Core/                    # Core implementation\n│   │   ├── Runtime/            # Runtime code\n│   │   │   ├── Attributes/     # Custom attributes\n│   │   │   ├── Base/          # Base classes\n│   │   │   └── Utils/         # Utility classes\n│   │   └── Editor/             # Editor code\n│   │       ├── Config/         # Configuration\n│   │       ├── Core/          # Core editor functionality\n│   │       └── Drawers/       # Custom drawers\n│   └── Examples/               # Example code\n├── Scripts/                    # Your project scripts\n│   └── Gen/                   # Generated code (auto-created)\n└── Resources/                 # Resource files\n    └── GlobalConfig.asset     # Global configuration\n```\n\n## Configuration\n\n### Global Settings\n\nConfigure code generation path in `Resources/GlobalConfig.asset`:\n\n1. Click \"Select Folder\" in Inspector\n2. Choose your script directory (usually `Assets/Scripts`)\n3. Generated code will be saved in `{path}/Gen/{className}/`\n\n### Code Generation Rules\n\n- **Generated file naming:** `{className}Gen.cs`\n- **Uses partial class pattern** - won't overwrite your main code\n- **Component property naming:** `{NodeName}_{ComponentType}`\n\n## Interface Features\n\n### Enhanced Hierarchy Window\n\n- **Background Color Coding** - Different colors for different AutoUIBinderBase types\n- **Component Icons** - Visual indicators for all UI components\n- **Binding Status** - Special highlighting for bound components\n- **Interactive Binding** - Click icons to bind/unbind instantly\n\n### Improved Inspector Panel\n\n- **Component Reference Table** - Clean overview of all bound components\n- **One-Click Generation** - Prominent \"Generate UI Code\" button\n- **Real-time Validation** - Automatically detects and reports invalid references\n- **Binding Statistics** - Shows bound/total component counts\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"docs/images/Inspector.png\" alt=\"Inspector Interface\" /\u003e\n\u003c/p\u003e\n\n## Advanced Features\n\n### Smart Naming System\n\nAutoUIBinder intelligently handles:\n\n- **Duplicate Detection** - Auto-adds numeric suffixes for duplicate names\n- **Invalid Characters** - Auto-replaces spaces and special characters\n- **C# Keyword Conflicts** - Avoids using reserved keywords as variable names\n- **User Confirmation** - Interactive dialogs for naming conflicts\n\n### Performance Optimizations\n\n- **Event-Driven Architecture** - Responsive to Unity's event system\n- **Memory Efficient** - Minimal runtime overhead\n\n### Robust Error Handling\n\n- **Graceful Recovery** - Auto-recovers binding state after editor restart\n- **Validation Checks** - Prevents common binding errors before they occur\n- **User-Friendly Messages** - Clear, actionable error descriptions\n\n## Best Practices\n\n### Component Organization\n- Keep UI hierarchies clean and organized\n- Use empty GameObjects as containers for logical grouping\n- Name GameObjects consistently across different panels\n\n### Code Structure\n- Keep your main UI class focused on game logic\n- Use the generated partial class for component references\n- Organize methods clearly for clean separation of concerns\n\n## Contributing\n\n**We welcome community contributions!**\n\n- **Report Bugs** - Help us improve by reporting issues\n- **Suggest Features** - Share your ideas for new functionality\n- **Submit Pull Requests** - Contribute code improvements\n- **Star the Project** - Show your support and help others discover AutoUIBinder\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n---\n\n\u003cp align=\"center\"\u003e\n    \u003cstrong\u003eAutoUIBinder - Making Unity UI Development a Breeze!\u003c/strong\u003e\n\u003c/p\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqqw1584913629%2Fautouibinder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqqw1584913629%2Fautouibinder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqqw1584913629%2Fautouibinder/lists"}