Advanced Unity Mobile Scripting

iOS

Advanced iOS scripting

Determining Device Generation

Different device generations support different functionality and have widely varying performance. You should query the device's generation and decide which functionality should be disabled to compensate for slower devices.

You can find the device generation from the iPhone.generation property. The reported generation can be one of the following:

  • iPhone
  • iPhone3G
  • iPhone3GS
  • iPhone4
  • iPodTouch1Gen
  • iPodTouch2Gen
  • iPodTouch3Gen
  • iPodTouch4Gen
  • iPad1Gen

You can find more information about different device generations, performance and supported functionality in our iPhone Hardware Guide.

Device Properties

There are a number of device-specific properties that you can access:-

SystemInfo.deviceUniqueIdentifierUnique device identifier.
SystemInfo.deviceNameUser specified name for device.
SystemInfo.deviceModelIs it iPhone or iPod Touch?
SystemInfo.operatingSystemOperating system name and version.

Anti-Piracy Check

Pirates will often hack an application from the AppStore (by removing Apple DRM protection) and then redistribute it for free. Unity iOS 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 the user that he is using a hacked application or maybe disable access to some functions of your application.

Note: 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. Note that iPod Touch devices lack vibration hardware and will just ignore this call.

Android

Advanced Android scripting

Determining Device Generation

Different Android devices support different functionality and have widely varying performance. You should target specific devices or device families and decide which functionality should be disabled to compensate for slower devices. There are a number of device specific properties that you can access to which device is being used.

Note: Android Marketplace does some additional compatibility filtering, so you should not be concerned if an ARMv7-only app optimised for OGLES2 is offered to some old slow devices.

Device Properties

SystemInfo.deviceUniqueIdentifierUnique device identifier.
SystemInfo.deviceNameUser specified name for device.
SystemInfo.deviceModelIs it iPhone or iPod Touch?
SystemInfo.operatingSystemOperating system name and version.

Anti-Piracy Check

Pirates will often hack an application (by removing Apple DRM protection) and then redistribute it for free. Unity Android 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.

Page last updated: 2012-07-11