3.1 KiB
3.1 KiB
UnityUDP
A small and simple Tool to send UDP packages over custom ports to control logic in Unity projects.
Storage
All projects and packages are stored in a JSON file located in your Documents folder:
- Windows:
C:\Users\<YourUsername>\Documents\unityudp_projects.json - macOS:
~/Documents/unityudp_projects.json - Linux:
~/Documents/unityudp_projects.json
This makes it easy to:
- 📤 Share projects with other users
- 💾 Backup your configurations
- 📝 Edit manually if needed (JSON format)
- 🔄 Version control with Git
Click the folder icon in the app to see the exact file location on your system.
Getting Started
Prerequisites
- Flutter SDK (^3.8.1)
- Dart SDK
Installation
- Clone the repository:
git clone <repository-url>
cd unityudp
- Install dependencies:
flutter pub get
- Generate JSON serialization code:
dart run build_runner build --delete-conflicting-outputs
- Run the app:
flutter run -d windows # For Windows
flutter run -d macos # For macOS
flutter run -d linux # For Linux
Usage
Creating a Project
- Tap the "New Project" button on the home screen
- Enter a project name and UDP port number (1-65535)
- Tap "Save"
Adding UDP Packages
- Select a project from the home screen
- Tap the "New Package" button
- Enter:
- Package name (for identification)
- IP address (destination, e.g., 127.0.0.1 for localhost)
- Data (the content to send)
- Tap "Save"
Sending UDP Packages
- Navigate to a project
- Find the package you want to send
- Tap the "Send" button
- The package will be sent to the configured IP address and port
Managing Projects and Packages
- Edit Port: Use the settings card at the top of the project screen to change the port
- Copy Package: Tap the menu icon (⋮) on a package and select "Copy"
- Edit: Tap the menu icon (⋮) and select "Edit"
- Delete: Tap the menu icon (⋮) and select "Delete"
Platform Support
- ✅ Windows (Recommended)
- ✅ macOS
- ✅ Linux
- ✅ Android
- ✅ iOS
- ⚠️ Web (Storage works, but UDP is not supported in browsers)
Note: For full UDP functionality, run the app on desktop (Windows/macOS/Linux) or mobile platforms. Web browsers do not support raw UDP sockets due to security restrictions.
Architecture
The app follows a clean architecture pattern with:
- Models: Data classes for Project and UdpPackage with JSON serialization
- Services:
StorageService: Handles local persistence using SharedPreferencesUdpService: Manages UDP packet transmission
- Screens:
HomeScreen: Project listing and managementProjectScreen: Package listing, editing, and sending
- Widgets: Reusable dialog components for creating/editing items
Dependencies
udp: ^5.0.3- UDP networking functionalityshared_preferences: ^2.2.2- Local data persistencejson_annotation: ^4.9.0- JSON serialization annotationsbuild_runner: ^2.4.8- Code generationjson_serializable: ^6.7.1- JSON serialization code generation