Skip to content

Setting up development environment

kremnev8 edited this page Feb 1, 2024 · 11 revisions

How to setup unity dev environment to create custom assets

This guide assumes you know BepInEx and have a working project for it. If you don't first do this.

  1. Install Unity 2018.4.12f1. You can get it from here
  2. Create unity project and add ThunderKit to your project. Follow its initial setup guide, then continue this one. Using Thunderkit is not mandatory, but it creates more stable environment.
  3. After installing Thunderkit ensure that you are able to add scripts from Assembly-CSharp. For example UIButton script
  4. If you need to add your scripts in unity, just add your built assembly to unity project with all of its dependecies.
  5. Also don't forget to copy files from unity folder to Assets folder in your project. It contains useful tools and utilities. You will also need to install CommonAPI Thunderstore package to use some scripts.

Dependencies from thunderstore

If you are using Thunderkit adding external dependencies from thunderstore is easy:

  1. Click on thunderkit in context menu and select settings. Find an option to select thunderstore link. Set it to https://dsp.thunderstore.io
  2. Click on thunderkit in context menu and select packages. In new window you should see word Thunderstore, expand it and you should see all needed dependecies like BepInEx or LDBTool

Troubleshooting

  • If you have issues installing Thunderkit like this one: Assembly has reference to non-existent assembly mentioning Unity.PerformanceTesting or Unity.ResourceManager, try installing com.unity.test-framework.performance and addressables packages. Do note that com.unity.test-framework.performance is a preview package.
  • If you have installed a Thunderstore package, but have issues referencing it, try enabling Auto Reference on its assembly. You can find this option when you select assembly in Project tab located at Packages/<Package name here>/. There might be more folders there, just find the main package assembly.