Change or Remove Networking Systems

With great power, comes great deletion.

Default State

Default state in version 2023 is Offline. This uses the Network Impostor system.

Migrate to: Fully Offline (strip all networking)

If your game is single player or local only then you may not want network support. You can achieve this with virtually no impact to the system. If the MIRROR and FISHNET compiler defines are not present in the Project Settings, then the "Impostor" networking classes are automatic fallbacks.
  • Delete any existing networking system from the project assets / package manager.
  • Delete any example files from those systems.
  • Remove any Define Symbols related to the deleted system.
    • Edit > Project Settings > Player > Other Settings > Scripting Define Symbols
  • Forever alone.
Classes like NetworkIdentity and NetworkBehaviour still exist as impostor shell classes and are still required to exist, so you will have to design with them all the same. This is a minor nuisance, but on the upside you can basically implement multiplayer in the future by just importing Mirror/FishNet.

Migrate to: Mirror or FishNet

The process is basically the same for both.
  • Delete any existing networking system from the project assets / package manager.
  • Remove any Define Symbols related to the deleted system
    • Edit > Project Settings > Player > Other Settings > Scripting Define Symbols
  • Import Mirror/Fishnet from git or the Asset Store
  • Import the Example Files .unitypackage file for the system you want.
  • /Assets/Cleverous/VaultInventory/Packages/
  • You may need to manually add the MIRROR or FISHNET symbol if Unity can't compile. Make sure there are not extra symbols for any deleted system if you were trying both out.
  • Restart Unity (not always required, but good practice for weaver/codegen)
Note: Importing either network system will trigger them to add their own NetworkIdentity or NetworkObject component to prefabs. You may need to spend some time cleaning this up. Note: The prefabs in all examples share the same GUIDs, so they overwrite easily.