This repository contains modifiable source code for the AWS GameKit package for Unity in the form of an Embedded Package. If you don’t need to modify the AWS GameKit package, you can download the latest tarball .tgz
file from the releases page and add it to a Unity project using the Unity Package Manager.
To modify this package we recommend cloning this repo and opening it as a blank Unity project. After making your changes, follow the Packaging steps below to generate a custom plugin package, which you can then add to your Unity projects.
See Packages/com.amazonaws.gamekit/README.md for instructions on installing the Package Manager package.
git clone https://github.com/aws/aws-gamekit-unity
This package needs the GameKit C++ SDK binaries in order to work. There are two ways to get the binaries:
Use pre-built binaries:
- Download the latest AWS GameKit Unity Package from the releases page.
- Expand the
com.amazonaws.gamekit-<version>.tgz
file. - Copy the folder
<expanded contents>/package/Plugins/]
into<root of this repo>/Package/com.amazonaws.gamekit/Plugins
and overwrite any existing files with the same name.
Build the binaries:
- Clone and setup the AWS GameKit C++ SDK using the tag specified in the .gkcpp_version file in this repository.
- Follow these steps each time you modify the C++ SDK:
- Close Unity. Otherwise the
.meta
files for the binaries will be deleted by Unity in the next step. - Compile the AWS GameKit C++ SDK.
- Run
refresh_plugin.py
as described in theUpdate Plugin with new binaries and headers
section of the AWS GameKit C++ SDK README.
- Close Unity. Otherwise the
- Open Unity Hub.
- Open the "Projects" tab along the left side.
- Click "Add", navigate to the root of the repository, then click "Select Folder".
- Open Unity Hub.
- Open the
aws-gamekit-unity
project. - In the Project window, navigate to
Packages/AWS GameKit/Runtime/Scripts
. - Double click on any C# file.
This will open the C# project in your IDE. Unity will automatically create the project if none exists. If you haven't set up an IDE or code editor, follow the guide in the Unity documentation.
If you ever need to regenerate the solution:
- Open Unity.
- Go to
Edit > Preferences
and clickRegenerate project files
See Assets/AWS_GameKit_Tests/README.md for instructions on running the unit tests.
Follow these instructions to debug the C# code: https://docs.unity3d.com/Manual/ManagedCodeDebugging.html
Follow these instructions to debug the AWS GameKit C++ SDK on Windows and step through from C# into C++ and back. You'll have two instances of Visual Studio open: one for C# and one for C++.
One-time setup:
- Follow the steps in section
Optional - Building the GameKit C++ SDK
above, ensure Debug binaries are being created instead of release. - Open the AWS GameKit C++ SDK solution file in Visual Studio.
- Add the C++ debugging symbols to Visual Studio:
- Debug > Options > Debugging > Symbols > + (top right) >
- Add the full path to
/Packages/com.amazonaws.gamekit/Plugins/Windows/x64
- Add the full path to
- Debug > Options > Debugging > Symbols > + (top right) >
Each time:
- Open the AWS GameKit C++ SDK solution file in Visual Studio.
- Attach the Visual Studio debugger to the Unity project. In Visual Studio:
- Debug > Attach to Process >
- Process:
Unity.exe
- Title (Example):
aws-gamekit-unity - Untitled Scene - PC, Mac & Linux
- Process:
- Debug > Attach to Process >
- Open AWS GameKit Unity in a separate Visual Studio window.
- Attach the debugger to Unity (see previous section titled
Debugging > Unity
). - Set breakpoints.
- Trigger breakpoints via
Play Mode
or by interacting with AWS GameKit through the Unity editor.
Run the following commands in order to create the com.amazonaws.gamekit-<version>.tgz
file:
cd path/to/aws-gamekit-unity
python export_unitypackage.py UNITY_APPLICATION_FULL_PATH
Where UNITY_APPLICATION_FULL_PATH
is like:
- Windows:
"C:\Program Files\Unity\Hub\Editor\2021.3.4f1\Editor\Unity.exe"
- Mac:
/Applications/Unity/Hub/Editor/2021.3.4f1/Unity.app/Contents/MacOS/Unity