Skip to main content
Version: 29.1.137

Upgrading the SDK

Version 29.x Upgrade

This document is for developers who have previously integrated v27.x or v28.x of the Skillz SDK. To integrate for the first time, please follow the standard instructions.

Before You Upgrade

The Skillz SDK is now integrated using CocoaPods for iOS. This dependency manager greatly streamlines integration and configuration of the Skillz SDK. Go here for more information

User Permissions Note

Due to Android being built with Android SDK 30, your app will ask for permissions at runtime, rather than at install time. Unity typically operates by asking for all possible permissions on the first launch of your app, and this can be overwhelming/off-putting to your users. Refer to these instructions on how to prompt for only necessary permissions at runtime.

Instructions

tip

As a best practice back up your existing project prior to upgrading. The upgrade steps require you to delete existing files and directories.

Delete the Assets/Skillz folder in Unity

Make sure to save any custom code you wrote in these Skillz files for safe keeping. In your Unity project, delete the Assets/Skillz/ folder in your Unity project.

Delete the Assets/ExternalDependencyManager folder in Unity

The Google Play Services Resolver has been renamed to the External Dependency Manager for Unity (EDM4U). If you have a PlayServicesResolver and/or ExternalDependencyManager directory in your project you should delete this directory before upgrading and installing the Skillz SDK Unity package.

Import the New Unity Package

With your Unity project open, double-click on the Unity package, skillz_unity-{version}.unitypackage, found inside the downloaded SDK archive. A dialog will pop up with a list of files to import. Make sure all files are checked and click "OK".

Disable Registry Addition

Skillz bundles a plugin by Google called the External Dependency Manager (EDM4U), which is used to resolve Android dependencies. On import of the Skillz SDK, EDM will display a dialog, similar to the screenshot below, to ask if you would like to add additional Unity Package Manager registries. Click the "Disable Registry Addition" button to dismiss the dialog.

Configure Your Game in Skillz Settings

Skillz has a dedicated settings window to configure your game. Access it from the Skillz > Settings menu item:

Enter your game ID, choose either Sandbox or Production for the environment, and your game's orientation for Android.

The orientation setting is for Android only. For games that have mixed orientations, the orientation setting tells Skillz what orientation to set your game scene at when it is loaded at the start of a match. For instance, if the scene for your main menu is designed for Portrait mode, but your game scene is designed for Landscape, the orientation setting should be set to Landscape.

Additionally, you can choose if users are allowed to exit the Skillz UI via its sidebar menu.

Configure iOS Resolver Settings

Enter the External Dependency Manager's iOS Resolver settings by clicking `Assets > External Dependency Manager > iOS Resolver > Settings. Verify the settings are set like this:

Install CocoaPods

The External Dependency Manager can install CocoaPods for you, if it is not already installed:

  1. Select Assets > External Dependency Manager > iOS Resolver > Install Cocoapods
  2. Click OK in the pop-up confirming installation was successful.

Update Skillz Manager Extra Logic Scripts

If the Skillz Manager has been added to your project before upgrade, and the extra logic scripts are used, a small change is needed to the parameters of one of the extra logic script methods.

Previous OnMatchWillBegin method:

SkillzExampleManagerLogic.cs
// ...
public class SkillzExampleManagerLogic : MonoBehaviour
{
public void OnMatchWillBeginLogic()
{
Debug.Log("Loading Game Scene");
}
...

New OnMatchWillBegin method:

SkillzExampleManagerLogic.cs
// ...
public class SkillzExampleManagerLogic : MonoBehaviour
{
public void OnMatchWillBeginLogic(SkillzSDK.Match match)
{
Debug.Log("Loading Game Scene");
}
...

Add Skillz Manager

The legacy SkillzMatchDelegate flow is still valid, the new Skillz Manager can also be used for this purpose. Instructions on how to update this are below:

First, Please replace your call to SkillzCrossPlatform.LaunchSkillz(SkillzMatchDelegate delegate) with SkillzCrossPlatform.LaunchSkillz().

A Skillz Manager needs to be added to your start menu scene.

  1. Right click in the Heirarchy and select Create Empty. In the inspector, click Add Component then add the Skillz Manager component.

  2. Open the Skillz Manager in the Inspector.

  3. Choose a Game Scene, Start Menu Scene, and optionally a Progression Room Scene for the scene fields.

NOTE: If your project does not use multiple scenes, or scenes need to be loaded manually, the scene fields can be left blank. The logic for these events can then be included in the extra logic script (see below).

Skillz Manager

NOTE: If your project uses unsupported Unity version 2019 or lower the Skillz Manager will not display correctly. Solution Here.

  1. For additional logic you may add a script to the Skillz Manager by selecting Add Component, then selecting a custom script. The script must be on the same gameObject as the Skillz Manager.

Methods from this script can then be called by pressing the + button under the On Match Will Begin, On Skillz Will Exit, and On Progression Room Enter, then selecting public methods from the added script.

Skillz Manager

An example extra logic script:

SkillzExampleManagerLogic.cs
// ...
public class SkillzExampleManagerLogic : MonoBehaviour
{
public void OnMatchWillBeginLogic(SkillzSDK.Match match)
{
Debug.Log("Loading Game Scene");
}

public void OnSkillzWillExitLogic()
{
Debug.Log("Loading Start Menu Scene");
}

public void OnProgressionRoomEnterLogic()
{
Debug.Log("Loading Progression Room Scene");
}
}
// ...

Test Your Game's Workflow

Test your game's workflow with Skillz using the SDK's SIDEkick feature.

Build Your Game

Follow the instructions on how to export and build your game for iOS or Android.

Upgrading Gradle

Versions 29.x+ of the SDK require Gradle 6.5+, while Unity comes with Gradle 6.1.1. Android Studio should direct you to upgrade Gradle when you import the project. If you wish to build the apk from Unity directly, you can find directions on updating Unity's version of gradle here

Next Steps

If you encounter any problems, please contact us with a detailed description of the issue you are encountering.