Get started
Zoom Video SDK for Unity is in a public beta. Share your feedback with us.
This guide goes over how to download and install the files for the Video SDK for Unity plugin on Android, iOS, macOS, and Windows and how to start the sample app.
See Video SDK Plans & Pricing for Developer for pricing.
Follow these steps to get started:
- Get your Video SDK credentials
- Download the latest version of the Video SDK for Unity plugin from the Zoom App Marketplace and unzip it.
- Download the platform files for Windows, iOS, or macOS from the Marketplace for your target platform.
The Video SDK for Unity is a C# wrapper for native Video SDK. The platform SDK files for these operating systems are not included in the plugin.
Therefore, except for the Android platform, you must download the matching version of the Video SDK for iOS or macOS and copy the files into the corresponding Unity plugin directory. See the rest of this page for details.
For the Android platform, we include the Video SDK files in a dependency list to allow for automatic download.
Import the sample app as a Unity project
Follow the instructions in the Get started with UGS Unity Documentation to create your project. The following steps go over how to get started using the Unity Hub. The steps go over how to create a project in Unity Hub and configure it for Android and macOS.
- Install Unity Hub and Unity Editor.
- Start Unity Hub, create an account if you haven't already, and sign in.
- Install Unity Editor 2022.3.1f. Click the link on this page to install this version with Unity Hub. Video SDK was tested with this version. You can run it with a different version but you may need to configure it differently to run.
- Add a license (for example, choose a free personal license).
- Add Android Build Support tools if you want to build for Android.
- In Unity Hub, click New project to create an empty Unity project (for example 3D Core).
- Set a project name, location, and organization for the project, and click Create project.
- Once you've created the project, it opens automatically in the Unity Editor. To import the Zoom Video SDK for Unity
unitypackage, right-click Assets, Import Package, Custom Package, and select theZoomVideoSDK.unitypackagewhere you unzipped it on your local machine. - Unity Hub displays the imported assets in a modal. Click Import.
- You can see the imported assets in the Assets folder in the project panel. In this folder, open the Scenes folder. You'll see the Zoom Unity sample scene in
Assets/Scenes/unity-zoom-video-sdk.unity. You'll also see the defaultSampleScene.unityinstalled with the project. You can delete this default sample scene. - Drag the
unity-zoom-video-sdk.unityinto the Hierarchy window. You will see the Zoom Unity sample UI with fields for JWT Token, Session Name, Display Name, and Password, a Leave button and a Join button. You should now be able to unload and delete theSampleScenefrom the Hierarchy window.
Configure the project for Android
Follow these steps to configure the project for Android.
- In the Unity Editor, click File and Build Settings to open the Build Settings window.
- Select Android and press the Switch Platform button to switch the platform to Android.
- Make sure that you selected an Android Emulator for the Run Device option.
- Click the Player Settings" button and expand the tabs to configure more selections.
- Select at least the same architecture as your machine under Target Architectures.
- Select a Minimum API Level of at least Android 6.0 (API level 23) or later and a Target API Level of up to Android 13.0 (API level 33).
- Set the Scripting Backend to IL2CPP.
- Clear the Custom Keystore check box to sign the project with a debug key.
- Close the Project Settings window.
- On the Build Settings screen, click Save if necessary, then Build and Run.
- If you've set everything up correctly, the app will run on the Android Emulator. Congratulations!
Configure the project for iOS
When you generate an Xcode project from the Unity Editor, you must configure it so that it can embed the Video SDK for macOS files inside the Unity app. You only need to follow these steps the first time that you build a new Xcode project from Unity. Once configured, you can make code changes in Unity and select Append to save them.
- In the Unity Editor, click File and Build Settings.
- Select the platform. Select iOS and click Build.
- Select the destination. In the Finder dialog, create a New Folder or choose a destination folder for your project and click Choose (the build folder can't be the same as the project root directory). For example,
unity-ios-project. The Unity Editor will generate an Xcode project will be generated inside this folder. - Copy the Video SDK for iOS package.
- Go to the generated folder and create a new Frameworks folder.
- Download the Zoom Video SDK iOS from the Zoom App Marketplace and unzip the package.
- Copy and paste the Video SDK for iOS package into the Frameworks folder.
- Configure the Project Navigator. Add the copied frameworks and libraries inside the Frameworks folder in Project Navigator. The frameworks from Zoom are
CptShare,ZoomVideoSDK,ZoomVideoSDKScreenShare,zm_annoter_dynamic,zoomcml. The rest are Apple frameworks files. - Configure build phases.
- Under Build Phases, in the Link Binary With Libraries section, the Unity and Apple frameworks should be already included. Add the Zoom frameworks.
- In the Embed Frameworks section, select Frameworks from the dropdown and verify that it includes the
CptShare,ZoomVideoSDK,zm_annoter_dynamic, andzoomcmlframeworks. - Go to the Generals tab and verify that the following dependencies are there for the UnityFramework target (
.frameworkor.xcframeworkformat, unless otherwise specified):AudioToolbox,AVFoundation,AVKit,baselib.a,CFNetwork,CoreGraphics,CoreMedia,CoreMotion,CoreText,CoreVideo,CptShare,Foundation,GameController,libGameAssembly.a,libiconv.2.tbd,libil2cpp.a,libiOSStaticLib.a,libiPhone-lib.a,MediaToolbox,Metal,OpenAL,QuartzCore,Security,SystemConfiguration,UIKit,zm_annoter_dynamic,zoomcml,ZoomVideoSDK.
- Configure build settings.
- Configure Library Search Paths. Go to Build Settings and search for "Library Search Paths". Add the following for both Debug and Release (non-recursive).
$(inherited) $(PROJECT_DIR)/Libraries $(SRCROOT)/Libraries/Plugins/iOS - Configure Runpath Search Paths. Go to the Build Settings and search for "Runpath Search Paths". Add the following for both Debug and Release.
$(inherited) @executable_path/Frameworks @loader_path/Frameworks
- Configure Library Search Paths. Go to Build Settings and search for "Library Search Paths". Add the following for both Debug and Release (non-recursive).
- Launch the Application. Click Product and Build, then Run the application. If you set everything up correctly, the app should run. Congratulations!
- Subsequent builds. Once your application is running successfully, you can make further code changes in Unity Editor and then select the Append option while generating the project. When you select Append, the changes will not overwrite the changes you made in the previous steps.
Configure the project for macOS
When you generate an Xcode project from the Unity Editor, you must configure it so that it can embed the Video SDK for macOS files inside the Unity app. You only need to follow these steps the first time that you build a new Xcode project from Unity. Once configured, you can make code changes in Unity and select Append to save them.
- In the Unity Editor, click File and Build Settings.
- Select the platform.
- Select Windows, Mac, Linux.
- Click the Switch Platform button (if available).
- Choose macOS as the Target Platform.
- Architecture: Intel 64-bit + Apple Silicon.
- Select the Create Xcode Project check box and keep the defaults.
- Click Build.
- Select the destination. In the Finder dialog, create a New Folder or choose a destination folder for your project and click Choose (the build folder can't be the same as the project root directory). For example,
unity-macos-project. The Unity Editor will generate an Xcode project will be generated inside this folder. - Copy the Video SDK for macOS package. Go to the
unity-macos-project/My project/Pluginsfolder and copy the Zoom Video SDK for macOS package into this directory.- Download the Zoom Video SDK macOS from the Zoom App Marketplace.
- Unzip the package.
- From the
Sample-Libs/ZoomVideoSDKdirectory, copy the files and folders and paste them directly into thePluginsfolder. - Delete
ZoomAudioDevice.driverfrom the folder.
- Configure Project Navigator. You must open the project in XCode Project Navigator to configure the project and add the copied frameworks and libraries to the Plugins folder in the Project Navigator.
- For example, double-click the
unity-macos-project.xcodeprojin theunity-macos-projectfolder to open the project in XCode. - Right-click the Plugins folder in the Project Navigator and choose Add files.... For example Add files to "unity-macos-project".
- Select all of the files in the Plugins folder in the Finder and click Add.
- You should see the files under the Plugins folder in the Project Navigator.
- For example, double-click the
- Configure build phases.
- Under Build Phases in the project target, Xcode might have added a lot of frameworks in the Link Binary With Libraries section by default. These aren't necessary. Select the unnecessary libraries and frameworks and click the minus ("-") sign to remove them. You only need the following libraries and frameworks.
ZMVideoSDK.frameworklibcares.dyliblibminizip.dyliblibzoombase_crypto_shared.dyliblibjson.dylibZoomVideoSDKMeetingBridge.frameworklibcrypto.dyliblibssl.dylibUnityPlayer.dylib
- Verify Plugins and Foundations. Under CopyPlugIns, the
libZMMacUnityVideoSDK.dylibmust already be in the Xcode project. Verify it is there. - Add New Copy Frameworks.
- Click the plus sign at the top of the Build Phases tab to create a new Copy Files Phase.
- Label it "Copy Zoom Dependencies".
- Select Frameworks from the Destination dropdown.
- Select all of the files in the Plugins folder and click Add.
- Be sure that you are copying the Zoom dependency files into the Frameworks destination and that the Code Sign on Complete checkbox is selected for the
ZMDB.frameworkandzNetUtils.frameworkfiles.
- Verify Frameworks and Libraries. Go to the General tab and make sure the Frameworks, Libraries, and Embedded Content section includes the following files.
annoter.bundleaomagent.bundleaomhost.appcapHost.appcmmbiz.frameworkcmmlib.frameworkCptHost.appcurl64.frameworklibcares.dyliblibcrypto.dyliblibjson.dyliblibminizip.dyliblibmono-native.dyliblibmonobdwgc-2.0.dyliblibMonoPosixHelper.dyliblibmpg123_mac.bundlelibssl.dyliblibZMMacUnityVideoSDK.dyliblibzoombase_crypto_shared.dylibmcm.bundlenydus.frameworkprotobuf.frameworkssb_sdk.bundletp.frameworkUnityPlayer.dylibutil.frameworkVideoSDK.dylibviper.frameworkxmpp_framework.frameworkzData.bundlezlt.bundleZMDB.frameworkZMVideoSDK.frameworkzNetUtils.frameworkZoomTask.frameworkZoomVideoSDKMeetingBridge.frameworkzVideoApp.bundlezWebService.bundle
- Under Build Phases in the project target, Xcode might have added a lot of frameworks in the Link Binary With Libraries section by default. These aren't necessary. Select the unnecessary libraries and frameworks and click the minus ("-") sign to remove them. You only need the following libraries and frameworks.
- Configure Build Settings.
- Configure Library Search Paths. Go to Build Settings and search for "Library Search Paths". Add the following for both Debug and Release (non-recursive).
$(inherited) $(PROJECT_DIR)/unity-zoom-video-sdk/Plugins - Configure Frameworks Search Paths. Go to the Build Settings and search for "Frameworks Search Paths". Add the same settings as for Library Search Paths.
$(inherited) $(PROJECT_DIR)/unity-zoom-video-sdk/Plugins - Configure Runpath Search Paths. Go to the Build Settings and search for "Runpath Search Paths". Add the following for both Debug and Release.
@executable_path/Frameworks @loader_path/../Frameworks @executable_path/../Frameworks
- Configure Library Search Paths. Go to Build Settings and search for "Library Search Paths". Add the following for both Debug and Release (non-recursive).
- Configure Camera and Microphone description.
- Open
UnityMacOSProject/unity-zoom-video-sdk/info.plistand add the following new items in the list. - Privacy - Camera Usage Description, a String Type, with a For Video Conferencing Value
- Privacy - Microphone Usage Description, a String Type, with a For Video Conferencing Value
- Open
- Launch the Application. Click Product and Build, then Run the application. If you set everything up correctly, the app should run. Congratulations!
- Subsequent builds. Once your application is running successfully, you can make further code changes in Unity Editor and then select the Append option while generating the project. When you select Append, the changes will not overwrite the changes you made in the previous steps.
Configure the project for Windows
Follow these steps to configure the project for Windows.
- In the Unity Editor, click File and Build Settings to open the Build Settings window.
- Select Windows, Mac, Linux and press Switch Platform to switch the platform.
- We only support Intel 64-bit systems, so be sure to select an architecture of Intel 64-bit.
- On the Build Settings screen, click Build, create an empty folder and select the folder as the project directory.
- After the visual studio project is built, navigate to
unity-zoom-video-sdk\vsdk-unity\Assets\Plugins\Windows\bin\,- Copy the three
.exetyped librariesaomhost64.exe,zCrashReport64.exe, andzcscpthost.exeto\VS_PROJECT_NAME\unity-zoom-video-sdk_Data\Plugins\x86_64. - This operation only needs to be done once, the first time you build the Visual Studio project.
- Copy the three
- Go back to the Build Settings screen and click Build And Run. If you set everything up correctly, the app should run. Congratulations!
Create and join a session
You can now create a Video SDK JWT token to authorize and join a session.
Subsequent Builds: Once you've successfully run your application, you can make further code changes in the Unity Editor and select Append while generating the project. Selecting this option will not overwrite the changes you've already made.