Splashdown
Splashdown - A Unity open-source splash and icon generator
Install / Use
/learn @Ale1/SplashdownREADME
Splashdown
A Unity open-source splash and icon tool that will generate custom icons with user-provided text. Allows for dynamic scripted content and to be incorporated into your build pipeline.
Its purpose is to aid in quick iteration of unity mobile games, and allow no-code team members such as Q.A testers, designers and general playtesters to quickly identify the build variant that is installed on their mobile device.
A quick glimpse at the generated icons and logos can give build release information without the need for opening the app or creating custom unity splashes.
The customizable text can be used to show things like date, author, build version, unity version, short release notes, beta tags, disclaimers, copyright notices, etc.
| |
|
Installation
Install via OpenUPM (recommended)
- Install openupm-cli via npm if you havent installed it before. =>
npm install -g openupm-cli) - Install com.ale1.splashdown via command line. Make sure to run this command at the root of your Unity project =>openupm add com.ale1.splashdown
Install via Git URL
Add the following line to the dependencies section of your project's manifest.json file
"com.ale1.splashdown": "git+https://github.com/Ale1.Splashdown.git#1.2.3"
The 1.2.3 represents the version tag to be fetched. Although it is discouraged, you can replace with master to always fetch the latest.
Getting Started
(1) Hello World
Right-click on any location within the Assets Folder. Navigate to Create > New Splashdown in the context menu.
A Splashdown file will appear.
Fill in the Splashdown Importer window and hit Apply button.
Congrats! you generated your first custom Logo/Icon
(2) Using it as Splash Logo
This generated sprite can be used as a logo in your Player Settings.
By clicking Activate Splash button, the playerSettings will start using this sprite as its splash image:
||
|:--:|
| you can remove it by selecting "Deactive" in the splashdown editor |
(3) Using it as App Icon
The same generated sprite can be used as an app icon when you build. Similarly to Splash logos, you just need to set its icon state to active by pressing "Activate Icon:
:warning: Unlike splash logos, activating an icon does NOT apply it to Player Settings right away. It will wait for the start of a app build process. This is by design, as the icon is meant to be a temporary placeholder during development and applying icons during build process allows for a safer restore of your previous icons after build process is complete.
(4) Dynamic Options
The Dynamic Options feature will allow you to quickly update the splashdown file without manually typing in info. Its particularly useful for allowing splashdown to keep track of dates or build versions.
Create a script like below and place it anywhere in your project (though preferably in an Editor folder).
The splashdown importer will automatically invoke methods with the [Splashdown.OptionsProvider] attribute whenever its refreshed.
Dynamically created Options will override any manual inputs in the splashdown importer.
public static class Example
{
[Splashdown.OptionsProvider] //Method with this atrribute must return a Splashdown.Options
public static Splashdown.Options ProvideSplashdownOptions() => new()
{
line1 = Application.unityVersion, // e.g 2021.3.4f
line2 = DateTime.Now.ToShortDateString(),
line3 = Application.version, //e.g 2.1.0
textColor = Color.red,
// no need to set all of available options. Those without values will use the manual values instead.
// backgroundColor = Color.blue
};
}
Dynamic options can accept an optional filter parameter that filters by filename (without extension), so it will only apply to specific Spashdowns. E.g:
[Splashdown.OptionsProvider("MyBlueLogo")]
//will only affect options of splashdown with name: 'MyBlueLogo.splashdown'
public static Splashdown.Options ProvideSplashdownOptions() => new()
{
...
}
The optional filter can use "*" as a wildcard regex character. For example:
[Splashdown.OptionsProvider("Dev*Logo")]
//will match with any splashdown with names such as: 'DevRedLogo.splashdown', 'DevBlueLogo.splashdown', etc
public static Splashdown.Options ProvideSplashdownOptions() => new()
{
...
}
Values in the inspector that have been overriden by dynamic options will have a yellow label, e.g, in example below, line1, line2 and text color values dont match the splashdown generated because these have been provided by a dynamic options script. The Class and Method name creating these overrides can be seen inside the information box.
(5) Add splashdown to your builds
Any splashdown file that is set to ACTIVE will regenerate when unity is building.
This means the latest values from dynamic options will be used, as well as adding the splash and/or logo to your Player Settings.
If you dont desire this behaviour, simply leave the splashdown files in INACTIVE state.
(6) Add Splashdown to your build pipeline through CLI
below will activate the splashdown file with the provided filename, and apply the options.
_yourUnityPath_ -batchmode -quit -projectPath _yourProjectPath_ -executeMethod Splashdown.Editor.CLI.SetSplashOptions -name MySplashdown -l1 hello -l2 banana -l3 world -size 44
//Mandatory param:
-name MySplashdown // the name of the splashdown file to apply. note that the default name is "MySplashdown" but you should replace with target filename if you've changed it in your project.
//Optional Flags:
-enable_splash // use as splash logo
-enable_icon // use as app icon
-disable_splash // remove logo from splash
-disable_icon // remove icons and restore previous icons
-enableDynamic //sets dynamic options to false
-disableDynamic //sets dynamic options to true
-size //sets the target font size (will be clamped if outside valid range)
Example for MacOS:
/Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -projectPath ~/Desktop/MyCoolGame -executeMethod Splashdown.Editor.CLI.SetSplashOptions -name MySplashdown -activeSplash -l1 hello -l2 cruel -l3 world - size 44
Example for Windows:
"C:\Program Files\Unity\Editor\Unity.exe" -quit -batchmode -projectPath "C:\Users\UserName\Documents\MyProject" -executeMethod Splashdown.Editor.CLI.SetSplashOptions -name "MySplashdown" -disableDynamic -l1 "Banana" -l2 "Yellow" -size 52
MyEditorScript.PerformBuild
Advanced Customization
Conflicting Options Resolution
Since you can provide options through multiple avenues, keep in mind the order of priority below (most to least).
(1) Dynamic Options
(2) CLI Options
(3) Options set manually in inspector
(4) Default Options
Options with higher Priority will override ones with lower priority.
Managing multiple Splashdown files
[!IMPORTANT] Having Multiple Splashdown assets in your project is supported, but they each must have unique filenames.
How the system handles multiple Splashdown files varies between splash logos and app icons:
Multiple Splash logos
You can have any number of splashdown files set to "Active Splash". All the Splash logos will be present sequentially in your splash screen. When you activate/deactivate a splash in the Splashdown inspector, it is automatically added or removed from your Player Settings in editor-time.
Multiple App Icons
For App icons, the Player settings dont allow for multiple icons for each category. Hence, when you activate an Icon, the system will check for other existing activated icons and disable those first.
This silent behaviour will be modified in the future to introduce a warning when trying to activate an icon when another icon is already active.
Using a texture as background
Works best when using a square non-transparent texture of dimensions 360 x 360.
Switching Fonts
You can switch the font used by using the Font Selector field in the splashdown inspector. Any font asset in your project can be used. The label above the font selector should update to show the path to the font currently being used. Keep in mind the font Selector field is always shown empty as its used for drag-and-dropping font asset files.
After switching fonts, you will likey need to adjust the font size to fit your needs. A feature to auto-resize the text will be introduced in a future release.
Customizing the Border
Customizing the border is possible, but the feature is not high-priority in the roadmap. If there is a use-case where modifying the borders provides an additional bene
Related Skills
node-connect
347.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
