Scripts that modify GameObject
s and Component
s at Prefab/Scene import time, based on build configurations.
All processing is done in the editor at import/build time, so there's no runtime penalty in built players.
- Supported conditions:
- Editor vs Built player
- Development vs Release build settings
- Scripting define symbols
- Active build platform
- Conditionally modify
GameObject
orComponent
properties with the PropertyModifier script (e.g.: setting different controller sprites between PlayStation and Xbox platforms) - Conditionally keep
GameObject
s orComponent
s with the KeepObjectsModifier script (e.g.: keep a "Login with Google Play Games" button in Android only) - Conditionally delete
GameObject
s orComponent
s with the DeleteObjectsModifier script (e.g.: delete a debug button in release builds)
Install via Unity Package Manager using the following URL:
https://github.com/gilzoide/unity-conditional-objects.git#1.0.0-preview2
AImportTimeObjectModifier
in Scenes are supported in all Unity versions.
Before Unity 2020.2, prefabs are only supported when directly instanced in scenes.
- Create a script that inherits from AImportTimeObjectModifier
- Implement the abstract
void Apply(bool filtersMatch)
method inside a#if UNITY_EDITOR
block. Check out the DeleteObjectsModifier script for an example. - Add the script to your game objects in Prefabs/Scenes
Whenever a prefab with your script is reimported or a scene is processed (either played in editor or built), the modifier will be applied and immediately destroyed.
UNITY_EDITOR
andDEVELOPMENT_BUILD
scripting define symbols are not detected correctly during builds, use the dedicated Editor and Development filters instead- Extra scripting define symbols passed to
BuildPipeline.BuildPlayer
are not detected correctly during builds