OS Utilities Overview
What is RetroDev.OS?
RetroDev.OS is a comprehensive device information utility for Unity. It provides clean, simple methods to query device capabilities, system information, and hardware specs—all the data you need to optimize your game for different devices.
Get RetroDev.OS here:
The Problem It Solves
Getting device information in Unity requires knowing exactly where each property lives and what it’s called:
Before RetroDev.OS:
string model = SystemInfo.deviceModel;DeviceType type = SystemInfo.deviceType;bool touch = Input.touchSupported;NetworkReachability network = Application.internetReachability;// ...scattered across different classesWith RetroDev.OS:
string model = OS.GetDeviceModel();string type = OS.GetDeviceType();bool touch = OS.IsTouchSupported();NetworkReachability network = OS.GetNetworkReachability();// ...all in one placeKey Features
Complete Device Info
Access every detail about the device running your game—from model and OS to battery level and memory.
Input Detection
Quickly check for touch, accelerometer, gyroscope, and location service support.
Network Awareness
Monitor network reachability to handle online/offline states gracefully.
Performance Data
Get processor details, memory size, and graphics capabilities to optimize your game.
What RetroDev.OS Provides
Device Information
- Device model and manufacturer
- Device type (phone, tablet, desktop, console)
- Operating system name and version
- Unique device identifier (UDID)
Hardware Capabilities
- Processor type, count, and frequency
- System memory size
- Graphics device name and specs
- Screen dimensions (width/height)
Input & Sensors
- Touch support detection
- Accelerometer availability
- Gyroscope availability
- Location services availability
System Status
- Battery level monitoring
- Network reachability status
- Device language setting
Common Use Cases
Adaptive Quality Settings:
// Adjust graphics based on device powerint memory = OS.GetSystemMemorySize();if (memory < 4096) { QualitySettings.SetQualityLevel(1); // Low quality} else { QualitySettings.SetQualityLevel(3); // High quality}Platform-Specific Features:
// Enable touch controls on mobileif (OS.IsTouchSupported()) { EnableTouchControls();} else { EnableKeyboardControls();}
// Use motion controls if availableif (OS.HasGyroscope()) { EnableMotionControls();}Network Handling:
// Check connectivity before online featuresNetworkReachability network = OS.GetNetworkReachability();if (network == NetworkReachability.NotReachable) { ShowOfflineMode();} else { EnableOnlineFeatures();}Analytics & Support:
// Gather system info for bug reportsstring deviceInfo = $"Device: {OS.GetDeviceModel()}\n" + $"OS: {OS.GetOperatingSystem()}\n" + $"Memory: {OS.GetSystemMemorySize()}MB\n" + $"GPU: {OS.GetGraphicsDeviceName()}";When to Use RetroDev.OS
Perfect for:
- Adaptive quality settings based on device
- Platform-specific feature detection
- Analytics and crash reporting
- Device compatibility checks
- Network-dependent features
- Battery-aware applications
You might not need it if:
- Your game has fixed quality settings
- You don’t need device-specific behavior
- You’re targeting a single platform
Privacy Considerations
Platform Support
RetroDev.OS works across all Unity platforms:
- iOS and Android
- Windows, Mac, Linux
- WebGL
- Consoles
Some methods may return default values on platforms that don’t support specific features (e.g., battery level on desktop).
Getting Started
Ready to make your game device-aware? Check out the Quick Start guide for detailed examples of every method.