Unity 6 services for local notifications, native UI, haptics, permissions, App Tracking Transparency, deep links, gestures, and mobile build tooling.
Use Mobile Services to isolate platform-specific behavior behind Unity-friendly APIs. It provides local notifications, not remote push delivery; it also does not provide connectivity or store fallback services. The package is pipeline-neutral.
| Item | Current policy |
|---|---|
| Minimum Unity version | 6000.0 |
| Reference streams | 6000.0.x, 6000.3.x, 6000.5.x |
| Reference editors | 6000.0.81f1, 6000.3.21f1, 6000.5.7f1 (primary) |
| Render pipeline | Pipeline-neutral |
| Validation status | Compatibility target; do not treat a stream as validated until the repository matrix records it. |
| Platform | Intended behavior |
|---|---|
| iOS / Android | Native services and build-time configuration |
| Editor | Platform simulator and no-op/mock backends where applicable |
| Standalone | Limited fallback behavior; haptics reports unsupported |
| WebGL | Not supported |
{
"dependencies": {
"com.gamelovers.mobileservices": "https://github.com/CoderGamester/Unity-MobileServices.git#1.2.0"
}
}Before using permissions, notifications, ATT, or native UI:
- Create and commit the Mobile Services settings/config asset.
- Fill in every required usage description and capability for the platforms you ship.
- Decide whether the package or your project owns generated native files.
- Validate an iOS and Android build on physical devices.
Without persisted configuration, the build postprocessor has no configuration to apply; it cannot infer missing privacy keys or capabilities.
Create owners during application startup and dispose them during teardown. Scheduling a notification transfers it to the operating system; disposing its service does not cancel already-scheduled OS notifications.
using System;
using GameLovers.MobileServices.Haptics;
using GameLovers.MobileServices.Notifications;
using Unity.Notifications.Android;
var haptics = new HapticsService();
haptics.Play(HapticPreset.Selection);
var notifications = new MobileNotificationService(
new GameNotificationChannel("default", "Default", "General notifications"));
// Keep this owner and call Dispose when your application service is torn down.
IDisposable ownedNotifications = notifications;Use the specific subsystem namespaces—Notifications, Haptics, NativeUi, and Device—rather than assuming one umbrella import exposes every type.
| Area | Provides |
|---|---|
| Native UI | Dismissible or blocking alerts, action sheets, toasts, review requests, and sharing |
| Notifications | Local notification channels, scheduling, and management |
| Haptics | Presets, custom output, and bounded loops |
| Device | Permissions, ATT, deep links, safe-area and device helpers |
| Gestures | Gesture controller for explicit gesture input ownership |
| Editor tooling | Device Simulator integration and build helpers |
Runtime alert calls render an interactive platform-shaped mock in the Game view even when the Device Simulator window is closed. Prefer ShowAlertPopUpAsync for a selected-index result on Unity's main thread; legacy callbacks also switch through Unity's Awaitable scheduler. The editor simulator is for exercising application paths; it is not a substitute for device permission, notification-delivery, review, or native-build validation.
Import Mobile Services Samples from Package Manager. Its four scenes—Overview, Haptics, Notifications, and Links—share one sample player; use its README for scene prerequisites and build tooling.
See docs, CHANGELOG.md, and issues.