******************************* Migration from v1.x.x to v2.0.x ******************************* This is a migration guide if you need to upgrade your Unity SDK v1.x.x to a 2.0.x version. If you are starting a project from scratch, follow the `Getting Started `_ guide instead. If you already have a 2.0.x version, you can ignore this guide. 0. Backup your project ====================== This goes without saying, but you should have backups of your project. Make one before the migration, so you can revert to a usable state if something goes wrong. `You are responsible for any data loss that may occur.` If you use a VCS (version control system, like Git or Mercurial), this is done for you. Make sure that you have commited or discarded any pending change. If you don't use a VCS, use a VCS. You won't regret it. 1. Remove the old SDK ===================== If you made changes in any part of the SDK code, they will be overwritten. You should send us your modifications, we could maybe integrate them in the next release. Delete the following assets from your Unity project: - any ``AsmodeeDigital`` folder - ``Plugins/AVProVideo`` - ``Plugins/Reporter`` - ``Plugins/Best HTTP (Pro)`` - ``Samples`` **IMPORTANT:** do **NOT** remove ``TextMesh Pro``, we still need the version with source code. The free version available on the Asset Store is contained in ``.dll`` files, and is not compatible with the SDK. We will eventually fix this. 2. Follow the Getting Started guide =================================== In this part, do as if you where installing from scratch. Download the SDK and its dependencies by following the `Getting Started `_ guide, then come back here. **IMPORTANT:** do **NOT** install ``TextMesh Pro`` from the Asset Store, it's not compatible with this version of the SDK (yet). If you don't already have the source code for TMP, contact us. 3. Use the newest CrossPromo ============================ The CrossPromo prefab was changed a bit. So if you used it, you should remove the ones existing in your scenes, and drag-drop the new one instead. Remember to rebind buttons to the ``CrossPromoView`` component (now at the root of the CrossPromo prefab). Remember to also check the ``NetworkParameters`` in the ``CrossPromoManager`` (also at the root of the CrossPromo prefab). 4. Take a Break =============== If you are using the Lite SDK, Congratulations! You are done! You can stop reading this manual. If you are using the Full SDK, please read on! 5. Rebuild the Serializer ========================= If you are reading this, it means you are using the Scalable Server for online gaming. There was a lot of renaming in the Serializer, so you need to rebuild it for your game. First remove the following files, they should be next to the folder containing your Unity project. * ``build_PlayRealSerializer.cmd`` * ``build_PlayRealSerializer.sh`` * ``PlayRealDTO/`` * ``PlayRealSampleDTO/`` `(if you didn't use the examples before, it won't be there)` * ``PlayRealDTOSerializer.sln`` * ``PlayRealSerializerGenerator/`` The only folders left should be the one containing your Unity project and the one containing the C# project for the serializable elements of your project (usually called like your game's name followed by ``DTO``). Now extract the content of ``AsmodeeNet_v2.0.1_Serializer.zip``, and copy it in the folder where you removed the previous files. Now open ``Serializer.sln``, remove the project ``GameDTO`` and add your own DTO project. Make sure to replace any reference to ``PlayRealDTO`` in there by a reference to ``ScalableServerDTO`` instead. It's time to rebuild all the assemblies. In Release mode, rebuild (in that order): * ``ScalableServerDTO`` * your project's DTO * ``SerializerGenerator`` Now, depending on your development platform: *Windows:* edit the script ``build_PlayRealSerializer.cmd`` and override the paths to ``YOUR_PROJECT_DTO`` and to ``UNITY_PROJECT_FOLDER``. Then execute the script in a PowerShell (or double-click it) to rebuild the ``.dll`` files needed by your project. *MacOS:* rename the file ``default.env`` into ``.env``. This is a config file that specifies where to find Unity, where to find Mono, your project's DTO, etc. Override the values if necessary. Then run ``build_PlayRealSerializer.sh``. 6. Fix renaming errors ====================== There may still be naming errors left in your code. Rename ``PlayRealSerializer`` into ``AsmodeeNetSerializer`` 7. Enjoy! ========= You are done, enjoy this new SDK.