For educational purposes only!
Personally i use alternative launchers, so not affected from these Hub Pains(tm)
Alternative Launchers: https://github.com/unitycoder/UnityLauncherPro/wiki/Alternative-Launchers
- Inside C:\Program Files\Unity Hub\resources\ Unpack app.asar into app/ folder (using 7zip Asar plugin https://www.tc4shell.com/en/7zip/asar/ or python script https://github.com/unitycoder/UnityHubPatcher )
- Rename old app.asar as app.asar.bak (then hub will run using the app/ folder instead of app.asar)
- Open app/ folder in VSCode/VSStudio (need to run as an Admin!)
- Uncheck "Connect to Unity Cloud" by default
- Enable Create Project Button (without having to select Cloud Organization)
- Remove Version Control & Cloud Dashboard columns
- Add Support for Custom Project Titles from ProjectName.txt or ProjectSettings ProductName field (instead of using folder name)
- Add IRC Chat to Hub window (using iframe))
- Custom Styles
- Custom Previews or any html for project template description
- Enable Built-in Login Dialog (no more browser login/logout issues with multiple accounts
- Completely quit Hub when you press X (window close button)
- Make Hub background translucent
- Tested on Hub 3.6.1
- open build/renderer/main.js
- find line:
{testId:"connect-services-checkbox",id:"unified-project-enabled-checkbox",isChecked:Y,onChange
- replace with:
{testId:"connect-services-checkbox",id:"unified-project-enabled-checkbox",isChecked:0==1,onChange
- Tested on Hub 3.6.1
- open build/renderer/main.js
- find line:
{r({id:"cancel-create-project",label:"Cancel"}),e()},testId:`cancel-project-${i.name}`},n("common:CANCEL")),s.default.createElement(u.Button,{isDisabled:o||S,onClick:function(){r
- replace with:
{r({id:"cancel-create-project",label:"Cancel"}),e()},testId:`cancel-project-${i.name}`},n("common:CANCEL")),s.default.createElement(u.Button,{isDisabled:1==0,onClick:function()
- Tested on Hub 3.6.1
- https://unitycoder.com/blog/2023/10/29/unityhub-3-6-0-remove-version-control-cloud-dashboard-columns/
-
Add Support for Custom Project Titles from ProjectName.txt or ProjectSettings ProductName field (instead of using folder name)
- Tested on Hub 3.6.1
- https://unitycoder.com/blog/2023/12/07/unityhub-add-support-for-custom-project-titles-instead-of-folder-name/
- Tested on Hub 3.6.1
- Open build/renderer/index.html
- Add any IRC embed code before
</body>
, like:<iframe src="https://chat.undernet.org/" style="background: #444; width:99%; height:450px;"></iframe>
- Video example: https://www.youtube.com/watch?v=3e9FSimbdfk
- tested in Hub 3.0.x
- Light color theme example, but you could modify the css to anything else https://unitycoder.com/blog/2022/03/02/customize-unityhub-colors/
- This doesn't require modifying Hub sources! it just works.
- Modify package.json to add HTML+CSS
- https://unitycoder.com/blog/2024/03/06/custom-unity-hub-project-template-preview-image-video-using-htmlcss-in-package-description/
- Open Unity Hub\resources\app\build\main\services\authService\AuthService.js
- Find line:
if ((0, appDefaultProtocolClientHelpers_1.isUnityHubProtocolHandled)()) {
- Replace with
if (1==0 && (0, appDefaultProtocolClientHelpers_1.isUnityHubProtocolHandled)())
- (to make this “if” be false, so that createLoginWindow gets called instead)
- Alternative to modifying source: Could try disabling "UnityHub" protocol from Registry, since the code tries to check for it "isUnityHubProtocolHandled"
- info https://unitycoder.com/blog/2024/04/26/unityhub-enable-builtin-login-dialog-no-more-browser-login-logout-issues/
- Open baseWindow.js
- add
const electron_1 = require("electron");
at the top (next to other require lines) - Find line
logger.debug('close event is prevented, browser window will be hidden');
- add this line after it
electron_1.app.quit();