Skip to main content

Unity SDK FAQ


Can I test the SDK using the Unity Editor for Android and iOS?

Yes, you can test the SDK using the Unity Editor for Android and iOS on both Mac and Windows. However, it's important to note that the native Android and iOS WebViews cannot run in the editor. Therefore, the macOS WebView is used for the Mac Unity Editor, and the Windows WebView is used for the Windows Unity Editor. Testing the game on an actual device or emulator is recommended to ensure it functions properly.

Additionally, the PKCE login flow is unavailable for Android or iOS build targets when using the SDK in the Windows Editor. Instead, use the Device Code Auth login flow.

I'm getting The type or namespace name 'Shared' does not exist in the namespace 'VoltstroStudios.UnityWebBrowser' (are you missing an assembly reference?). How do I fix this?

Large files like .dll are stored on Git Large File Storage. Please download and install git-lfs from here before cloning the repository.

I'm getting Webview is not supported on this platform. How do I fix this?

It appears that you are attempting to run an Android/iOS game in the Unity Editor. However, this is not possible. You must run your game through an Android/iOS emulator or device.

Can I use the Unity SDK for crafting (burn and mint) assets?

You can use the zkEVM Send Transaction function in the Unity SDK to call your smart contract crafting function.

For an example of how to perform crafting in a Unity game, you can refer to our Unity sample game.

Why is the in-app browser used for Passport login on mobile and not a webview?

The in-app browser is specifically designed for single sign-on (SSO) purposes, making it a much more secure option. This browser runs on a separate process from the hosting game, meaning the game cannot access it, modify any content, or inject malicious code. On the other hand, when it comes to the web view, the hosting game has more control over it. For instance, the hosting game can intercept requests and inject JavaScript, making it less secure.

Do you support IL2CPP for Windows?

Currently, we do not have support for IL2CPP on the Windows platform.

Why is PKCE login not supported for Windows?

Standalone Windows applications do not support window deep linking from a web browser to the application, which PKCE requires. Although UWP (Universal Windows Platform) applications support it, we do not currently support it.

On iOS, when using the PKCE login/logout function, I get an alert asking: "My Game" Wants to Use "immutable.com" to Sign in. Can I modify or remove this alert?

To securely implement PKCE, we must use ASWebAuthenticationSession, which shows an alert. Unfortunately, this alert cannot be removed or modified as the operating system triggers it.

You'll be able to read more about this here.

I'm getting TimeoutException: Exceed Timeout:00:01:00 what does this mean?

If you encounter a TimeoutException, it indicates that the function you called took more than one minute to return a response. Although this is the default timeout value, the timeout can be customised using the SetCallTimeout function.

To identify the specific function that caused this exception, you can check the bottom of the stack trace or the logs generated before the exception was thrown.

I'm stuck at Waiting for ready signal after initialising Passport. What is wrong?

Our SDK includes a post-process script that copies an index.html file required to run the SDK.

This error could be because the files weren't copied correctly to the build. Please check and see if you got the message "Successfully copied Passport files" in the console output.

Another reason for this error could be that the path to the index.html file is unexpected. We try to cover all the possible cases in our SDK, but if you suspect this is the problem, please do not hesitate to let us know or create a GitHub issue.

LoginPKCE and ConnectImxPKCE do not work in my Android game when I enable minify. How do I fix this?

Please refer to this section of our documentation.

I'm getting The engine did not get ready within engine startup timeout! on Windows. What do I do?

Please try the following items to see if the issue goes away:

  1. Before starting your game, check the Task Manager for Chrome Embedded Framework (CEF) and kill it if it's running. Our code handles this, but you may need to do it manually.
  2. Restart your computer.
  3. Increase the engine start-up timeout in the Passport.Init function here.