Skip to content

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:

Download OS →

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 classes

With RetroDev.OS:

string model = OS.GetDeviceModel();
string type = OS.GetDeviceType();
bool touch = OS.IsTouchSupported();
NetworkReachability network = OS.GetNetworkReachability();
// ...all in one place

Key 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 power
int memory = OS.GetSystemMemorySize();
if (memory < 4096) {
QualitySettings.SetQualityLevel(1); // Low quality
} else {
QualitySettings.SetQualityLevel(3); // High quality
}

Platform-Specific Features:

// Enable touch controls on mobile
if (OS.IsTouchSupported()) {
EnableTouchControls();
} else {
EnableKeyboardControls();
}
// Use motion controls if available
if (OS.HasGyroscope()) {
EnableMotionControls();
}

Network Handling:

// Check connectivity before online features
NetworkReachability network = OS.GetNetworkReachability();
if (network == NetworkReachability.NotReachable) {
ShowOfflineMode();
} else {
EnableOnlineFeatures();
}

Analytics & Support:

// Gather system info for bug reports
string 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.