🧁AppStart
This is first app script point.
SplashScreen logic is also here. You can implement and call your custom. VersionValidator is called before default splash screen logic.
Setup for mobile devices vSync and target frame rate defined also in AppStart:
var graphicsSettings = saveSystem.GameSettings.GraphicsSettings;
QualitySettings.vSyncCount = graphicsSettings.VSyncCount;
Application.targetFrameRate = graphicsSettings.TargetFrameRate;To change this settings it's recommended to implement settings change in-game UI and change GameSettings.GraphicsSettings.TargetFrameRate and vSync.
DontDestroyOnLoad systems initialization in Loader scene
Replace all systems that you need to initialize before game scene load under Systems disabled object. That way systems will get the most fresh SaveData object (after validation and remote save load if there is):


AppStart.cs will trigger all systems after version validation (also remote save load can be). All objects replaced under disabled object "Systems" should be in active state. AppStart.cs will unparent them as soon as save data will be ready. By unparenting all objects under Systems all unparented objects will invoke Awake and Start methods (if there is).
Unity logs in build
By default unity logs disabled in build by AppStart.cs! So if you need to debug something in build -> comment highlighted lines below. And don't forget to uncomment it back before release for optimizations!

Last updated