Advanced Unity Mobile Scripting

Device Properties

There are a number of device-specific properties that you can access. See the script reference pages for SystemInfo.deviceUniqueIdentifier, SystemInfo.deviceName, SystemInfo.deviceModel and SystemInfo.operatingSystem.

Anti-Piracy Check

Pirates will often hack an application (by removing AppStore DRM protection) and then redistribute it for free. Unity comes with an anti-piracy check which allows you to determine if your application was altered after it was submitted to the AppStore.

You can check if your application is genuine (not-hacked) with the Application.genuine property. If this property returns false then you might notify user that he is using a hacked application or maybe disable access to some functions of your application.

Note: Application.genuineCheckAvailable should be used along with Application.genuine to verify that application integrity can actually be confirmed. Accessing the Application.genuine property is a fairly expensive operation and so you shouldn't do it during frame updates or other time-critical code.

Vibration Support

You can trigger a vibration by calling Handheld.Vibrate. However, devices lacking vibration hardware will just ignore this call.

Activity Indicator

Mobile OSes have builtin activity indicators, that you can use during slow operations. Please check Handheld.StartActivityIndicator docs for usage sample.

Screen Orientation

Unity iOS/Android allows you to control current screen orientation. Detecting a change in orientation or forcing some specific orientation can be useful if you want to create game behaviors depending on how the user is holding the device.

You can retrieve device orientation by accessing the Screen.orientation property. Orientation can be one of the following:

PortraitThe device is in portrait mode, with the device held upright and the home button at the bottom.
PortraitUpsideDownThe device is in portrait mode but upside down, with the device held upright and the home button at the top.
LandscapeLeftThe device is in landscape mode, with the device held upright and the home button on the right side.
LandscapeRightThe device is in landscape mode, with the device held upright and the home button on the left side.

You can control screen orientation by setting Screen.orientation to one of those, or to ScreenOrientation.AutoRotation. When you want auto-rotation, you can disable some orientation on a case by case basis. See the script reference pages for Screen.autorotateToPortrait, Screen.autorotateToPortraitUpsideDown, Screen.autorotateToLandscapeLeft andScreen.autorotateToLandscapeRight

iOS

Android

Page last updated: 2013-07-18