Files
UnityUDP/README.md
2025-10-15 12:20:27 +02:00

115 lines
3.1 KiB
Markdown

# 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
1. Clone the repository:
```bash
git clone <repository-url>
cd unityudp
```
2. Install dependencies:
```bash
flutter pub get
```
3. Generate JSON serialization code:
```bash
dart run build_runner build --delete-conflicting-outputs
```
4. Run the app:
```bash
flutter run -d windows # For Windows
flutter run -d macos # For macOS
flutter run -d linux # For Linux
```
## Usage
### Creating a Project
1. Tap the **"New Project"** button on the home screen
2. Enter a project name and UDP port number (1-65535)
3. Tap **"Save"**
### Adding UDP Packages
1. Select a project from the home screen
2. Tap the **"New Package"** button
3. Enter:
- Package name (for identification)
- IP address (destination, e.g., 127.0.0.1 for localhost)
- Data (the content to send)
4. Tap **"Save"**
### Sending UDP Packages
1. Navigate to a project
2. Find the package you want to send
3. Tap the **"Send"** button
4. 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 SharedPreferences
- `UdpService`: Manages UDP packet transmission
- **Screens**:
- `HomeScreen`: Project listing and management
- `ProjectScreen`: Package listing, editing, and sending
- **Widgets**: Reusable dialog components for creating/editing items
## Dependencies
- `udp: ^5.0.3` - UDP networking functionality
- `shared_preferences: ^2.2.2` - Local data persistence
- `json_annotation: ^4.9.0` - JSON serialization annotations
- `build_runner: ^2.4.8` - Code generation
- `json_serializable: ^6.7.1` - JSON serialization code generation